*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--linen:#f8f5f2;--charcoal:#2d2926;--taupe:#8b7e74;--border:#e5e1dd;--slate:#6b7280;--white:#fff;--charcoal-soft:#3d3632;--linen-deep:#ede9e4;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}html{scroll-behavior:smooth}body{background:var(--linen);color:var(--charcoal);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:DM Sans,sans-serif;font-size:16px;line-height:1.65;overflow-x:hidden}#root{text-align:left;width:100%;max-width:100%;min-height:100svh;margin:0}a{color:inherit;text-decoration:none}ul{list-style:none}h1,h2,h3{color:var(--charcoal);font-family:Outfit,sans-serif}.nav{z-index:100;-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--border);background:#f8f5f2eb;justify-content:space-between;align-items:center;height:64px;padding:0 48px;display:flex;position:fixed;top:0;left:0;right:0}.nav-logo{letter-spacing:-.02em;color:var(--charcoal);font-family:Outfit,sans-serif;font-size:15px;font-weight:600}.nav-links{align-items:center;gap:32px;display:flex}.nav-links a{color:var(--slate);font-size:13px;transition:color .15s}.nav-links a:hover{color:var(--charcoal)}.btn-nav{background:var(--charcoal);border-radius:4px;padding:8px 20px;font-family:Outfit,sans-serif;font-weight:500;color:var(--linen)!important;font-size:13px!important;transition:background .15s!important}.btn-nav:hover{background:var(--charcoal-soft);color:var(--linen)!important}.hero{text-align:center;flex-direction:column;justify-content:center;align-items:center;min-height:100vh;padding:120px 48px 80px;display:flex}.eyebrow{letter-spacing:.35em;text-transform:uppercase;color:var(--taupe);align-items:center;gap:16px;margin-bottom:28px;font-family:Outfit,sans-serif;font-size:10px;font-weight:700;display:flex}.eyebrow-line{background:var(--border);flex-shrink:0;width:40px;height:1px;display:block}.hero h1{letter-spacing:-.03em;color:var(--charcoal);margin-bottom:20px;font-size:clamp(52px,8vw,88px);font-weight:300;line-height:1}.hero h1 strong{font-weight:600}.hero-location{color:var(--slate);margin-bottom:44px;font-size:15px;font-weight:300}.hero-actions{align-items:center;gap:16px;display:flex}.btn-primary{color:var(--linen);background:var(--charcoal);border-radius:4px;padding:14px 32px;font-family:Outfit,sans-serif;font-size:14px;font-weight:500;transition:background .15s;display:inline-block}.btn-primary:hover{background:var(--charcoal-soft)}.btn-ghost{color:var(--slate);align-items:center;gap:4px;font-family:DM Sans,sans-serif;font-size:14px;font-weight:400;transition:color .15s;display:inline-flex}.btn-ghost:hover{color:var(--charcoal)}.section{border-top:1px solid var(--border);padding:96px 48px}.section-alt{background:var(--linen-deep)}.section-inner{max-width:960px;margin:0 auto}.eyebrow-sm{letter-spacing:.35em;text-transform:uppercase;color:var(--taupe);margin-bottom:12px;font-family:Outfit,sans-serif;font-size:10px;font-weight:700;display:block}.section-header{margin-bottom:48px}.section h2{letter-spacing:-.03em;margin-top:8px;font-size:clamp(32px,4vw,48px);font-weight:300;line-height:1.1}.about-body{max-width:680px}.about-body p{color:var(--slate);margin-bottom:24px;font-size:16px;font-weight:300;line-height:1.85}.about-body p:last-child{margin-bottom:0}.skills-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:40px;display:grid}.skill-category{letter-spacing:-.01em;color:var(--charcoal);border-bottom:1px solid var(--border);margin-bottom:16px;padding-bottom:12px;font-family:Outfit,sans-serif;font-size:13px;font-weight:500}.skill-list{flex-wrap:wrap;gap:8px;display:flex}.skill-tag{color:var(--charcoal);background:var(--linen);border:1px solid var(--border);border-radius:100px;padding:4px 12px;font-size:12px;font-weight:400}.certs-row{flex-wrap:wrap;gap:20px;display:flex}.cert-badge{border:1px solid var(--border);background:var(--white);border-radius:8px;flex-direction:column;justify-content:center;align-items:center;gap:6px;min-width:160px;padding:28px 48px;display:flex}.cert-name{letter-spacing:-.02em;color:var(--charcoal);font-family:Outfit,sans-serif;font-size:24px;font-weight:600}.projects-grid{grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:24px;display:grid}.project-card{border:1px solid var(--border);background:var(--white);border-radius:8px;flex-direction:column;padding:32px;transition:box-shadow .2s;display:flex}.project-card:hover{box-shadow:0 4px 24px #2d292614}.project-header{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:16px;display:flex}.project-name{letter-spacing:-.02em;color:var(--charcoal);font-family:Outfit,sans-serif;font-size:20px;font-weight:600}.project-link{color:var(--taupe);white-space:nowrap;flex-shrink:0;margin-top:4px;font-size:12px;font-weight:500;transition:color .15s}.project-link:hover{color:var(--charcoal)}.project-desc{color:var(--slate);flex:1;margin-bottom:24px;font-size:14px;font-weight:300;line-height:1.75}.project-tags{flex-wrap:wrap;gap:6px;display:flex}.tag{color:var(--taupe);background:var(--linen-deep);border:1px solid var(--border);letter-spacing:.01em;border-radius:100px;padding:3px 10px;font-family:Outfit,sans-serif;font-size:11px;font-weight:500}.contact-inner{text-align:center;flex-direction:column;align-items:center;display:flex}.contact-heading{letter-spacing:-.03em;margin-top:8px;margin-bottom:16px;font-size:clamp(32px,4vw,48px);font-weight:300}.contact-sub{color:var(--slate);max-width:400px;margin-bottom:40px;font-size:15px;font-weight:300;line-height:1.75}.contact-links{flex-wrap:wrap;justify-content:center;align-items:center;gap:16px;display:flex}.footer{border-top:1px solid var(--border);text-align:center;padding:32px 48px}.footer p{color:var(--taupe);font-size:13px}@media (width<=768px){.nav{padding:0 24px}.nav-links{gap:12px}.nav-links a:not(.btn-nav){display:none}.hero{padding:100px 24px 60px}.hero-actions{flex-direction:column;gap:12px}.section{padding:64px 24px}.skills-grid{grid-template-columns:1fr;gap:28px}.projects-grid{grid-template-columns:1fr}.certs-row{gap:12px}.cert-badge{min-width:120px;padding:20px 32px}.footer{padding:24px}}.blog-main{flex-direction:column;min-height:100vh;padding-top:64px;display:flex}.blog-inner,.post-inner{width:100%;max-width:680px;margin:0 auto;padding:64px 48px 96px}.blog-header{border-bottom:1px solid var(--border);margin-bottom:56px;padding-bottom:40px}.blog-title{letter-spacing:-.03em;margin-top:8px;margin-bottom:16px;font-size:clamp(36px,5vw,56px);font-weight:300;line-height:1.05}.blog-subtitle{color:var(--slate);max-width:420px;font-size:15px;font-weight:300;line-height:1.7}.tag-filters{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:40px;display:flex}.tag-filter{letter-spacing:.01em;color:var(--slate);border:1px solid var(--border);cursor:pointer;background:0 0;border-radius:100px;padding:5px 14px;font-family:Outfit,sans-serif;font-size:12px;font-weight:500;transition:color .15s,background .15s,border-color .15s}.tag-filter:hover{color:var(--charcoal);border-color:var(--taupe)}.tag-filter--active{color:var(--linen);background:var(--charcoal);border-color:var(--charcoal)}.tag-filter--active:hover{color:var(--linen);background:var(--charcoal-soft);border-color:var(--charcoal-soft)}.tag-filter-clear{color:var(--taupe);cursor:pointer;background:0 0;border:none;margin-left:4px;padding:5px 4px;font-family:DM Sans,sans-serif;font-size:12px;font-weight:400;transition:color .15s}.tag-filter-clear:hover{color:var(--charcoal)}.post-list{flex-direction:column;gap:0;display:flex}.post-item{border-bottom:1px solid var(--border)}.post-link{padding:32px 0;transition:opacity .15s;display:block}.post-link:hover .post-item-title{color:var(--taupe)}.post-link:hover .post-read-more{color:var(--charcoal)}.post-meta{letter-spacing:.25em;text-transform:uppercase;color:var(--taupe);margin-bottom:10px;font-family:Outfit,sans-serif;font-size:11px;font-weight:700}.post-item-title{letter-spacing:-.02em;color:var(--charcoal);margin-bottom:10px;font-size:20px;font-weight:500;line-height:1.3;transition:color .15s}.post-excerpt{color:var(--slate);margin-bottom:14px;font-size:14px;font-weight:300;line-height:1.7}.post-tags{flex-wrap:wrap;gap:6px;margin-bottom:12px;display:flex}.post-tag{color:var(--taupe);background:var(--linen-deep);border:1px solid var(--border);border-radius:100px;padding:2px 10px;font-family:Outfit,sans-serif;font-size:11px;font-weight:500}.post-read-more{color:var(--taupe);font-size:13px;font-weight:400;transition:color .15s}.back-link{color:var(--taupe);margin-bottom:40px;font-size:13px;transition:color .15s;display:inline-block}.back-link:hover{color:var(--charcoal)}.post-heading{letter-spacing:-.03em;margin-top:8px;margin-bottom:16px;font-size:clamp(28px,4vw,42px);font-weight:300;line-height:1.15}.post-description{color:var(--slate);margin-bottom:28px;font-size:17px;font-weight:300;line-height:1.7}.post-header-meta{border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:12px;margin-top:-24px;margin-bottom:40px;padding-bottom:40px;display:flex}.post-header-meta .post-tags{flex-wrap:wrap;gap:6px;margin-bottom:0;display:flex}.post-audience{color:var(--taupe);letter-spacing:.02em;font-family:Outfit,sans-serif;font-size:11px;font-weight:500}.post-body{color:var(--slate);font-size:16px;font-weight:300;line-height:1.85}.post-body h2{letter-spacing:-.02em;color:var(--charcoal);margin-top:48px;margin-bottom:16px;font-family:Outfit,sans-serif;font-size:20px;font-weight:500}.post-body h3{color:var(--charcoal);margin-top:32px;margin-bottom:12px;font-family:Outfit,sans-serif;font-size:16px;font-weight:500}.post-body p{margin-bottom:24px}.post-body ul,.post-body ol{margin-bottom:24px;padding-left:24px}.post-body ul{list-style:outside}.post-body ol{list-style:decimal}.post-body li{margin-bottom:8px}.post-body strong{color:var(--charcoal);font-weight:500}.post-body em{font-style:italic}.post-body code{background:var(--linen-deep);border:1px solid var(--border);color:var(--charcoal);border-radius:3px;padding:2px 6px;font-family:ui-monospace,Cascadia Code,monospace;font-size:13px}.post-body pre{background:var(--charcoal);border-radius:6px;margin-bottom:24px;padding:24px;overflow-x:auto}.post-body pre code{color:var(--linen);background:0 0;border:none;padding:0;font-size:13px}.post-body a{color:var(--charcoal);text-underline-offset:3px;text-decoration:underline}.post-body a:hover{color:var(--taupe)}.post-body blockquote{border-left:3px solid var(--border);color:var(--taupe);margin-bottom:24px;margin-left:0;padding-left:20px;font-style:italic}.post-body hr{border:none;border-top:1px solid var(--border);margin:40px 0}.blog-empty{color:var(--slate);margin-bottom:24px;font-size:15px}@media (width<=768px){.blog-inner,.post-inner{padding:48px 24px 64px}.post-link{padding:24px 0}}
