@import"https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=JetBrains+Mono:wght@400;500&display=swap";*,:after,:before{box-sizing:border-box;margin:0;padding:0}:root{--bg:#fff;--bg-card:#fff;--border:#ebebeb;--border-hover:#d4d4d4;--text:#171717;--text-2:#525252;--text-3:#a3a3a3;--accent:#171717;--green:#22c55e;--orange:#f97316;--font:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;--mono:"JetBrains Mono","SF Mono",monospace}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;scroll-behavior:smooth}body{background:var(--bg);color:var(--text);font-family:var(--font);line-height:1.6}.page{min-height:100vh;opacity:0;transition:opacity .5s ease}.page.visible{opacity:1}.layout{margin:0 auto;max-width:720px;padding:0 1.5rem;position:relative;z-index:1}.nav{align-items:center;animation:fadeIn .5s ease both;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);background:#ffffffe6;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;padding:1rem 0;position:sticky;top:0;z-index:100}.nav-logo{color:var(--text);cursor:pointer;font-family:var(--mono);font-size:1rem;font-weight:500;letter-spacing:-.02em;text-decoration:none}.nav-links{display:flex;gap:1.25rem}.nav-links a{color:var(--text-3);font-family:var(--mono);font-size:.75rem;letter-spacing:.04em;text-decoration:none;text-transform:uppercase;transition:color .15s}.nav-links a:hover{color:var(--text)}.hero{animation:fadeUp .5s ease .1s both;padding:3.5rem 0 2.5rem}.hero-name{color:var(--text);font-size:clamp(2.5rem,7vw,3.75rem);font-weight:700;letter-spacing:-.035em;line-height:1.1;margin-bottom:.5rem}.hero-role{color:var(--text-3);letter-spacing:.04em;margin-bottom:1.25rem;text-transform:uppercase}.hero-role,.hero-typing{font-family:var(--mono);font-size:.9375rem}.hero-typing{align-items:center;color:var(--text-2);display:flex;gap:.4rem}.prompt{color:var(--text-3);-webkit-user-select:none;-moz-user-select:none;user-select:none}.blinker{color:var(--text);opacity:0;transition:opacity .08s}.blinker.on{opacity:1}.about{animation:fadeUp .5s ease .2s both;border-top:1px solid var(--border);padding:2rem 0}.about-text{color:var(--text-2);font-size:1.0625rem;line-height:1.75;margin-bottom:1.25rem}.stack{display:flex;flex-wrap:wrap;gap:.375rem}.stack span{border:1px solid var(--border);border-radius:100px;color:var(--text-2);font-family:var(--mono);font-size:.75rem;padding:.3rem .7rem;transition:all .15s}.stack span:hover{border-color:var(--text);color:var(--text)}.section{animation:fadeUp .5s ease .3s both;border-top:1px solid var(--border);padding:2.5rem 0}.section-header{margin-bottom:1.5rem}.section-label{color:var(--text-3);font-family:var(--mono);font-size:.75rem;letter-spacing:.08em;margin-bottom:.25rem;text-transform:uppercase}.section-title{font-size:1.5rem;font-weight:700;letter-spacing:-.025em}.projects-grid{display:grid;gap:.75rem;grid-template-columns:1fr 1fr}.project-card{background:var(--bg-card);border:1px solid var(--border);border-radius:12px;box-shadow:0 1px 3px #0000000a;overflow:hidden;transition:border-color .2s,box-shadow .2s}.project-card:hover{border-color:var(--border-hover);box-shadow:0 4px 20px #00000012}.project-img{background:#fafafa;border-bottom:1px solid var(--border);height:160px;overflow:hidden}.project-img img{height:100%;-o-object-fit:cover;object-fit:cover;-o-object-position:top center;object-position:top center;transition:transform .3s ease;width:100%}.project-card:hover .project-img img{transform:scale(1.02)}.project-img-placeholder{align-items:center;color:var(--text-3);display:flex;font-size:1.25rem;font-weight:700;justify-content:center;letter-spacing:-.02em}.project-body{padding:1.125rem 1.25rem 1.25rem}.project-top{align-items:center;display:flex;justify-content:space-between;margin-bottom:.25rem}.project-top h3{font-size:1.125rem;font-weight:600;letter-spacing:-.01em}.badge{border-radius:100px;font-family:var(--mono);font-size:.625rem;font-weight:500;padding:.15rem .5rem}.badge-live{background:#f0fdf4;color:var(--green)}.badge-dev{background:#fff7ed;color:var(--orange)}.project-tagline{color:var(--text-3);font-size:.9375rem;margin-bottom:.5rem}.project-desc{color:var(--text-2);font-size:.9375rem;line-height:1.6;margin-bottom:.75rem}.project-stack{display:flex;flex-wrap:wrap;gap:.25rem;margin-bottom:.75rem}.project-stack span{background:#fafafa;border:1px solid var(--border);border-radius:3px;color:var(--text-2);font-family:var(--mono);font-size:.6875rem;padding:.15rem .4rem}.project-links{display:flex;flex-wrap:wrap;gap:1rem}.project-links a{align-items:center;color:var(--text);display:inline-flex;font-size:.9375rem;font-weight:500;gap:.25rem;text-decoration:none;transition:color .15s}.project-links a:hover{color:var(--text-2)}.arrow{font-size:.75rem}.posts-list{display:flex;flex-direction:column}.post-row{align-items:flex-start;border-bottom:1px solid var(--border);color:var(--text);display:flex;gap:1rem;justify-content:space-between;padding:1rem 0;text-decoration:none;transition:background .15s}.post-row:first-child{border-top:1px solid var(--border)}.post-row:hover{background:#fafafa}.post-row:hover .arrow{transform:translate(2px,-2px)}.post-info{display:flex;flex-direction:column;gap:.25rem}.post-title{font-size:1rem;font-weight:600;letter-spacing:-.01em;line-height:1.4}.post-meta{align-items:center;color:var(--text-3);display:flex;font-family:var(--mono);font-size:.6875rem;gap:.375rem}.post-sep{opacity:.4}.post-tags{display:flex;flex-wrap:wrap;gap:.25rem;margin-top:.125rem}.post-tags span{background:#fafafa;border:1px solid var(--border);border-radius:3px;color:var(--text-3);font-family:var(--mono);font-size:.5625rem;padding:.125rem .375rem}.post-row .arrow{color:var(--text-3);flex-shrink:0;font-size:.875rem;margin-top:.25rem;transition:transform .15s}.view-all{align-items:center;color:var(--text-3);display:inline-flex;font-family:var(--mono);font-size:.75rem;font-weight:500;gap:.25rem;margin-top:1rem;text-decoration:none;transition:color .15s}.view-all:hover{color:var(--text)}.view-all .arrow{transition:transform .15s}.view-all:hover .arrow{transform:translate(3px)}.certs-list{display:flex;flex-direction:column}.cert-row{align-items:center;border-bottom:1px solid var(--border);color:var(--text);display:flex;justify-content:space-between;padding:.875rem 0;text-decoration:none;transition:background .15s}.cert-row:first-child{border-top:1px solid var(--border)}.cert-row:hover{background:#fafafa}.cert-row:hover .arrow{transform:translate(3px)}.cert-info{display:flex;flex-direction:column;gap:.125rem}.cert-title{font-size:.9375rem;font-weight:500}.cert-meta{color:var(--text-3);font-family:var(--mono);font-size:.6875rem}.cert-row .arrow{color:var(--text-3);font-size:.8125rem;transition:transform .15s}.rec-grid{display:grid;gap:.75rem;grid-template-columns:1fr 1fr}.rec-card{background:var(--bg-card);border:1px solid var(--border);border-radius:10px;display:flex;flex-direction:column;justify-content:space-between;padding:1.25rem}.rec-quote{color:var(--text-2);font-size:.875rem;font-style:italic;line-height:1.65;margin-bottom:1rem}.rec-footer{border-top:1px solid var(--border);padding-top:.75rem}.rec-author{display:block;font-size:.875rem;font-weight:600}.rec-role{color:var(--text-3);font-size:.75rem}.section-contact{padding-bottom:1.5rem}.contact-links{align-items:center;display:flex;flex-wrap:wrap;gap:.5rem 1.25rem}.contact-links a{color:var(--text);font-size:.9375rem;font-weight:500;text-decoration:none;transition:color .15s}.contact-links a:hover{color:var(--text-2)}.contact-location{color:var(--text-3);font-size:.9375rem}.footer{border-top:1px solid var(--border);color:var(--text-3);font-family:var(--mono);font-size:.6875rem;padding:1.5rem 0}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@media (max-width:380px){.layout{padding:0 1rem}.nav{padding:1.25rem 0}.nav-links{gap:.75rem}.nav-links a{font-size:.6875rem}.hero{padding:2rem 0 1.5rem}.hero-name{font-size:1.75rem}.hero-role{font-size:.75rem;margin-bottom:1rem}.hero-typing{font-size:.6875rem}.about-text{font-size:.875rem}.section{padding:1.75rem 0}.section-title{font-size:1.125rem}.projects-grid{grid-template-columns:1fr}.project-img{height:120px}.project-body{padding:.875rem 1rem 1rem}.project-top h3{font-size:.875rem}.project-desc,.project-links a{font-size:.75rem}.rec-grid{grid-template-columns:1fr}.rec-card{padding:1rem}.rec-quote{font-size:.875rem}.cert-title{font-size:.8125rem}.cert-meta{font-size:.625rem}.contact-links{gap:.375rem 1rem}.contact-links a{font-size:.75rem}}@media (min-width:381px) and (max-width:640px){.layout{padding:0 1.25rem}.nav{padding:1.5rem 0}.nav-links{gap:1rem}.nav-links a{font-size:.6875rem}.hero{padding:2.5rem 0 1.75rem}.hero-name{font-size:2rem}.hero-role,.hero-typing{font-size:.75rem}.about-text{font-size:.9375rem}.section{padding:2rem 0}.projects-grid{grid-template-columns:1fr}.project-img{height:140px}.rec-grid{grid-template-columns:1fr}.rec-quote{font-size:.875rem}}@media (min-width:641px) and (max-width:1023px){.layout{max-width:620px}.hero{padding:3rem 0 2rem}}@media (min-width:1024px){.layout{max-width:680px}}@media (hover:none) and (pointer:coarse){.cert-row{min-height:52px}.nav-links a,.project-links a{padding:.25rem 0}}::-moz-selection{background:#17171714;color:var(--text)}::selection{background:#17171714;color:var(--text)}
