*{box-sizing:border-box;margin:0;padding:0}:before{box-sizing:border-box;margin:0;padding:0}:after{box-sizing:border-box;margin:0;padding:0}:root{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-body:var(--font-sans);--font-mono:var(--font-sans);--color-bg:#f0ede8;--color-fg:#1c1a17;--color-muted:#6b6760;--color-dim:#9c9890;--color-border:#d6d0c8;--color-accent:#1a6b3c;--color-accent-hover:#145530;--size-body:16px;--size-small:13.5px;--size-label:11px;--size-intro:17px;--line-height:1.75;--max-width:680px;--spacing-section:2.75rem;--navbar-height:52px}@media (prefers-color-scheme:dark){:root{--color-bg:#111110;--color-fg:#e8e6e1;--color-muted:#9c9a94;--color-dim:#5e5c58;--color-border:#252421;--color-accent:#4caf78;--color-accent-hover:#6bcf96}}html{font-size:var(--size-body);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;scroll-behavior:smooth;scroll-padding-top:calc(var(--navbar-height) + 1.5rem)}body{background-color:var(--color-bg);color:var(--color-fg);font-family:var(--font-body);line-height:var(--line-height);transition:background-color .2s,color .2s}a{color:inherit;text-underline-offset:3px;text-decoration-color:var(--color-border);transition:color .15s,text-decoration-color .15s}a:hover{color:var(--color-accent);text-decoration-color:var(--color-accent)}em{color:var(--color-muted);font-style:italic}.container{max-width:var(--max-width);padding:calc(var(--navbar-height) + 3rem) 1.5rem 6rem;margin:0 auto}.topnav{height:var(--navbar-height);z-index:100;background-color:var(--color-bg);border-bottom:.5px solid transparent;transition:border-color .25s,background-color .2s;position:fixed;top:0;left:0;right:0}.topnav.scrolled{border-color:var(--color-border)}.topnav-inner{max-width:var(--max-width);justify-content:space-between;align-items:center;height:100%;margin:0 auto;padding:0 1.5rem;display:flex}.topnav-name{font-family:var(--font-body);color:var(--color-fg);letter-spacing:0;font-size:1rem;font-weight:500;text-decoration:none;transition:color .15s}.topnav-name:hover{color:var(--color-accent)}.topnav-links{align-items:center;gap:1.75rem;list-style:none;display:flex}.topnav-link{font-family:var(--font-body);color:var(--color-muted);font-size:15px;text-decoration:none;transition:color .15s;position:relative}.topnav-link:hover{color:var(--color-fg)}.topnav-link.active{color:var(--color-fg)}.topnav-link.active:after{content:"";background-color:var(--color-accent);-webkit-border-radius:1px;border-radius:1px;height:1.5px;position:absolute;bottom:-3px;left:0;right:0}.header{margin-bottom:var(--spacing-section)}.hero{text-align:center;flex-direction:column;align-items:center;gap:1.25rem;display:flex}.hero-text{max-width:520px}.hero-name{color:var(--color-fg);letter-spacing:-.01em;margin-bottom:.6rem;font-size:1.75rem;font-weight:700;line-height:1.2}.avatar{border:.5px solid var(--color-border);background-color:var(--color-border);-webkit-border-radius:50%;border-radius:50%;justify-content:center;align-items:center;width:110px;height:110px;display:flex;overflow:hidden}.avatar-bg{fill:var(--color-border)}.avatar-shape{fill:var(--color-dim);opacity:.6}.avatar img{object-fit:cover;width:100%;height:100%;display:block}.intro{font-size:var(--size-intro);color:var(--color-muted);text-align:center;line-height:1.7}.links{flex-wrap:wrap;justify-content:center;align-items:center;gap:.5rem 1.25rem;margin-top:1.5rem;list-style:none;display:flex}.links a{color:var(--color-muted);align-items:center;text-decoration:none;transition:color .15s;display:flex}.links a:hover{color:var(--color-fg)}.resume-btn{-webkit-border-radius:6px;border-radius:6px;padding:4px 14px 5px;line-height:1.5;color:var(--color-muted)!important;border:1px solid var(--color-dim)!important;font-size:13px!important;transition:color .15s,border-color .15s!important}.resume-btn:hover{color:var(--color-fg)!important;border-color:var(--color-fg)!important}.section{margin-top:var(--spacing-section)}.section-label{font-family:var(--font-mono);font-size:var(--size-label);letter-spacing:.14em;color:var(--color-dim);text-transform:uppercase;border-bottom:.5px solid var(--color-border);margin-bottom:1.25rem;padding-bottom:.6rem;font-weight:500}.skills-list{width:100%}.skill-row{border-bottom:.5px solid var(--color-border);grid-template-columns:160px 1fr;align-items:baseline;gap:0 2rem;padding:.9rem 0;display:grid}.skill-row:last-child{border-bottom:none}.skill-category{font-family:var(--font-mono);font-size:var(--size-label);letter-spacing:.1em;text-transform:uppercase;color:var(--color-dim);word-break:break-word;padding-top:.1rem;font-weight:500}.skill-items{font-family:var(--font-body);color:var(--color-fg);font-size:1rem;line-height:1.7}.project-list{list-style:none}.project{border-bottom:.5px solid var(--color-border);justify-content:space-between;align-items:flex-start;gap:1.5rem;padding:.75rem 0;display:flex}.project:last-child{border-bottom:none}.project-left{flex:1;min-width:0}.project-name{color:var(--color-fg);border-bottom:1px solid transparent;font-size:1rem;font-weight:500;text-decoration:none;transition:color .15s,border-color .15s;display:inline-block}.project-name:hover{color:var(--color-accent);border-color:var(--color-accent)}.project-desc{font-size:var(--size-small);color:var(--color-muted);margin-top:.2rem;line-height:1.55}.project-tag{font-family:var(--font-mono);letter-spacing:.03em;color:var(--color-dim);white-space:nowrap;flex-shrink:0;padding-top:.2rem;font-size:10px}.post-list{list-style:none}.post{border-bottom:.5px solid var(--color-border);justify-content:space-between;align-items:baseline;gap:1rem;padding:.55rem 0;display:flex}.post:last-child{border-bottom:none}.post-title{color:var(--color-fg);border-bottom:1px solid transparent;font-size:1rem;text-decoration:none;transition:color .15s,border-color .15s}.post-title:hover{color:var(--color-accent);border-color:var(--color-accent)}.post-date{font-family:var(--font-mono);letter-spacing:.03em;color:var(--color-dim);white-space:nowrap;flex-shrink:0;font-size:10px}.location-wrap{display:inline-block;position:relative}.location-link{text-underline-offset:3px;text-decoration:underline;text-decoration-color:var(--color-border);color:inherit;transition:color .15s}.location-link:hover{color:var(--color-accent)}.map-peek{width:260px;height:160px;box-shadow:0 8px 32px rgba(0,0,0,.22), 0 0 0 .5px var(--color-border);opacity:0;pointer-events:none;z-index:50;-webkit-border-radius:12px;border-radius:12px;transition:opacity .15s,transform .15s;position:fixed;overflow:hidden;transform:scale(.94)}.map-peek.visible{opacity:1;pointer-events:auto;transform:scale(1)}.about{color:var(--color-muted);font-size:1rem;line-height:1.8}.about p+p{margin-top:.9rem}.contact{padding-top:.25rem}.availability{font-size:var(--size-small);color:var(--color-accent);align-items:center;gap:.5rem;margin-bottom:1rem;font-weight:500;display:flex}.availability-dot{background-color:var(--color-accent);-webkit-border-radius:50%;border-radius:50%;flex-shrink:0;width:7px;height:7px;animation:2.4s ease-in-out infinite pulse}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.8)}}.contact-text{color:var(--color-muted);max-width:480px;margin-bottom:1.5rem;font-size:1rem;line-height:1.75}.contact-email{color:var(--color-fg);border-bottom:1px solid var(--color-border);padding-bottom:2px;font-size:1rem;font-weight:500;text-decoration:none;transition:color .15s,border-color .15s;display:inline-block}.contact-email:hover{color:var(--color-accent);border-color:var(--color-accent)}.footer{border-top:.5px solid var(--color-border);font-family:var(--font-mono);letter-spacing:.04em;color:var(--color-dim);align-items:center;gap:.6rem;margin-top:4rem;padding-top:1.5rem;font-size:10px;display:flex}.footer a{color:var(--color-dim);border-bottom:1px solid var(--color-border);padding-bottom:1px;text-decoration:none;transition:color .15s,border-color .15s}.footer a:hover{color:var(--color-fg);border-color:var(--color-fg)}@media (max-width:480px){.container{padding:calc(var(--navbar-height) + 2rem) 1.25rem 4rem}.topnav-links{gap:1.1rem}.topnav-link{font-size:13px}.hero{flex-direction:column;gap:1.25rem}.avatar{width:80px;height:80px}.intro{font-size:17px}.skill-row{grid-template-columns:1fr;gap:.25rem}.skill-items{font-size:var(--size-small)}.project{flex-direction:column;gap:.4rem}.project-tag{padding-top:0}.post{flex-direction:column;gap:.15rem}}