@font-face{font-family:Nunito;src:local("Nunito Regular"),url(/assets/Nunito-Regular-Drx8vvyk.ttf) format("truetype");font-weight:400;font-display:swap}@font-face{font-family:Nunito;src:local("Nunito SemiBold"),url(/assets/Nunito-SemiBold-Y7Om0qPO.ttf) format("truetype");font-weight:600;font-display:swap}@font-face{font-family:Nunito;src:local("Nunito Bold"),url(/assets/Nunito-Bold-CI248YNI.ttf) format("truetype");font-weight:700;font-display:swap}:root{--bg: #0b0c0e;--text: #ededee;--muted: #9a9ca2;--faint: #6a6c72;--border: rgba(255, 255, 255, .08);--border-strong: rgba(255, 255, 255, .16);--accent: #8fb0ff;--radius: 12px;--max-width: 860px;--text-width: 660px}*{box-sizing:border-box}img,svg{max-width:100%}html,body{margin:0;padding:0;min-height:100%;width:100%;overflow-x:hidden}body{background-color:var(--bg);color:var(--text);font-family:Nunito,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:16px;line-height:1.65}h1,h2,h3,h4{margin:0;line-height:1.2;font-weight:700;letter-spacing:-.01em;color:var(--text)}p{margin:0;color:var(--muted)}a{color:inherit;text-decoration:none}button{font-family:inherit}button:focus-visible,a:focus-visible{outline:2px solid var(--accent);outline-offset:3px}::selection{background:#8fb0ff38}.app{display:flex;flex-direction:column;min-height:100vh;width:100%}.content{flex:1;width:100%;max-width:var(--max-width);margin:0 auto;padding:64px 24px 24px}.copyright{max-width:var(--max-width);width:100%;margin:0 auto;text-align:left;color:var(--faint);font-size:14px;padding:48px 24px;border-top:1px solid var(--border)}.btn{display:inline-flex;align-items:center;justify-content:center;padding:.6em 1.3em;border-radius:8px;font-size:15px;font-weight:700;cursor:pointer;border:1px solid transparent;transition:background .18s ease,border-color .18s ease,color .18s ease,opacity .18s ease}.btn-primary{background:var(--text);color:var(--bg)}.btn-primary:hover{opacity:.88}.btn-ghost{background:transparent;color:var(--text);border-color:var(--border-strong)}.btn-ghost:hover{border-color:var(--text)}@media screen and (max-width:640px){.content{padding:40px 20px 16px}.copyright{padding:36px 20px}}.header{position:sticky;top:0;z-index:50;width:100%;background:#0b0c0ecc;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-bottom:1px solid var(--border)}.header-inner{max-width:var(--max-width);margin:0 auto;padding:18px 24px;display:flex;align-items:center;justify-content:space-between;gap:16px}.brand{font-weight:700;font-size:15px;color:var(--text);white-space:nowrap}.navigation{display:flex;align-items:center;gap:24px}.nav-item{font-size:15px;font-weight:600;color:var(--muted);padding-bottom:2px;border-bottom:1px solid transparent;transition:color .18s ease,border-color .18s ease}.nav-item:hover{color:var(--text)}.nav-item.active{color:var(--text);border-bottom-color:var(--accent)}@media screen and (max-width:560px){.header-inner{padding:14px 20px;flex-direction:column;align-items:flex-start;gap:10px}.navigation{gap:20px}}.about{display:flex;flex-direction:column;gap:56px}.hero{display:flex;align-items:stretch;gap:40px}.hero-photo{width:210px;align-self:stretch;height:auto;min-height:0;object-fit:cover;object-position:top;border-radius:var(--radius);border:1px solid var(--border);flex-shrink:0}.hero-intro{min-width:0}.hero-name{font-size:clamp(28px,5vw,40px);margin-bottom:6px}.hero-role{font-size:17px;color:var(--muted);margin-bottom:18px}.hero-tagline{font-size:16px;color:var(--muted);max-width:48ch;margin-bottom:26px}.hero-links{display:flex;align-items:center;flex-wrap:wrap;gap:14px}.hero-socials{display:inline-flex;align-items:center;gap:16px;margin-left:6px;color:var(--faint)}.hero-socials a{display:inline-flex;transition:color .18s ease}.hero-socials a:hover{color:var(--text)}.bio{display:flex;flex-direction:column;gap:18px}.bio p{font-size:16px;line-height:1.75}.focus-heading{font-size:14px;text-transform:uppercase;letter-spacing:.12em;color:var(--faint);font-weight:700;margin-bottom:24px}.focus-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 40px}.focus-item{border-top:1px solid var(--border);padding-top:16px}.focus-item h3{font-size:16px;font-weight:700;margin-bottom:6px}.focus-item p{font-size:15px;line-height:1.6}.tools{font-size:15px;color:var(--faint)}@media screen and (max-width:640px){.about{gap:44px}.hero{flex-direction:column;align-items:flex-start;gap:24px}.hero-photo{width:200px;height:200px;align-self:auto}.focus-list{grid-template-columns:1fr;gap:22px}}.projects{display:flex;flex-direction:column}.section-head h1{font-size:clamp(28px,5vw,38px);margin-bottom:4px}.section-head h2{font-size:clamp(22px,4vw,28px);margin-top:48px;margin-bottom:4px}.entry-list{display:flex;flex-direction:column;margin-top:12px}.entry-list:after{content:"";border-top:1px solid var(--border)}.entry{display:flex;gap:32px;padding:24px 0;border-top:1px solid var(--border);text-align:left}.entry-main{flex:1;min-width:0}.entry-role{font-size:17px;font-weight:700;color:var(--text);margin-bottom:6px}.entry-link{color:var(--accent);font-size:15px}.entry-link:hover{opacity:.8}.entry-desc{font-size:15px;line-height:1.6;color:var(--muted);max-width:56ch}.entry-meta{display:flex;flex-direction:column;align-items:flex-end;text-align:right;flex-shrink:0;width:170px}.entry-company{font-size:15px;font-weight:700;color:var(--text)}.entry-date{font-size:14px;color:var(--faint)}@media screen and (max-width:640px){.entry{flex-direction:column;gap:6px;padding:20px 0}.entry-meta{order:-1;flex-direction:row;align-items:baseline;justify-content:flex-start;gap:10px;text-align:left;width:auto}}.contact{text-align:left;max-width:var(--text-width)}.contact-title{font-size:clamp(30px,5vw,42px);margin-bottom:10px}.contact-lead{font-size:17px;color:var(--muted);margin-bottom:32px}.contact-rows{display:flex;flex-direction:column;gap:16px;margin-bottom:36px}.contact-row{display:inline-flex;align-items:center;gap:12px;font-size:16px;font-weight:600;color:var(--text);width:fit-content;transition:color .18s ease}.contact-row svg{color:var(--faint);flex-shrink:0;transition:color .18s ease}.contact-row:hover{color:var(--accent)}.contact-row:hover svg{color:var(--accent)}.contact-cta{text-decoration:none}
