:root{--bg:#0b0913;--surface:#141020;--border:#2a2340;--rule-muted:#4a3f66;--text:#e8e4f2;--text-2:#c4bdd6;--muted:#9a93ad;--faint:#837c99;--accent:#a78bfa;--accent-hover:#c4b5fd;--live:#86e3b5;--live-bg:#10291f;--building:#b9aedb;--building-bg:#1e1830;--font-sans:"Geist Sans", system-ui, -apple-system, "Segoe UI", sans-serif;--font-mono:"Geist Mono", ui-monospace, "SF Mono", Menlo, monospace}*,:before,:after{box-sizing:border-box}html{color-scheme:dark;background:var(--bg);scroll-behavior:smooth}body{background:var(--bg);color:var(--text);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;margin:0;font-size:16px;line-height:1.6}a{color:var(--text);text-decoration:none}a:hover{color:var(--accent-hover)}:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:4px}h1,h2,h3,p,ul{margin:0}ul{padding:0;list-style:none}[hidden]{display:none!important}.page{flex-wrap:wrap;gap:48px;max-width:1180px;margin:0 auto;padding:0 24px;display:flex}.side{flex-direction:column;flex:340px;gap:40px;padding:96px 0 48px;display:flex}@media (width>=960px){.side{align-self:flex-start;position:sticky;top:0}}@media (width<=959px){.side{gap:28px;padding-top:56px}}.intro{flex-direction:column;gap:12px;display:flex}.name{letter-spacing:-.03em;font-size:44px;font-weight:600;line-height:1.05}.headline{color:var(--text-2);font-size:18px;line-height:1.4}.tags{font-family:var(--font-mono);color:var(--muted);flex-direction:column;gap:2px;margin-top:4px;font-size:12px;display:flex}.tags span{color:var(--accent)}.tabs{flex-direction:column;gap:4px;display:flex}.tab{cursor:pointer;min-height:44px;color:var(--muted);font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;background:0 0;border:0;align-self:flex-start;align-items:center;gap:16px;padding:0;font-size:12px;display:flex}.tab:before{content:"";background:var(--rule-muted);width:32px;height:1px;transition:width .2s}.tab[aria-current=true]{color:var(--text)}.tab[aria-current=true]:before{background:var(--accent);width:64px}.tab:hover{color:var(--accent-hover)}.links{flex-wrap:wrap;gap:4px 20px;font-size:14px;display:flex}.links a{color:var(--muted);align-items:center;min-height:44px;display:inline-flex}.links a:hover{color:var(--accent-hover)}.links a.pdf{color:var(--accent)}.links a.pdf:hover{color:var(--accent-hover)}.main{flex-direction:column;flex:999 560px;gap:64px;min-width:0;padding:96px 0 80px;display:flex}@media (width<=959px){.main{padding-top:0}}.panel{flex-direction:column;gap:32px;scroll-margin-top:48px;display:flex}.section-label{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--muted);align-items:center;gap:16px;font-size:12px;font-weight:400;display:flex}.section-label:before{content:"";background:var(--rule-muted);width:32px;height:1px}.about{color:var(--muted);font-size:17px}.about .hl{color:var(--text)}.projects{flex-direction:column;gap:8px;display:flex}.project{flex-wrap:wrap;gap:24px;padding:20px 0;display:flex;position:relative}.thumb{aspect-ratio:16/10;border:1px solid var(--border);background:var(--surface);width:200px;font-family:var(--font-mono);color:var(--faint);border-radius:6px;flex:0 0 200px;justify-content:center;align-self:flex-start;align-items:center;font-size:11px;display:flex;overflow:hidden}.thumb img{object-fit:cover;width:100%;height:100%;display:block}.project-body{flex-direction:column;flex:280px;gap:8px;min-width:0;display:flex}.project-title{align-items:center;gap:10px;display:flex}.project-title h3{color:var(--text);font-size:17px;font-weight:500}.project-title a.stretch:after{content:"";position:absolute;inset:0}.project.linked:hover h3 a{color:var(--accent-hover)}.source{z-index:1;min-height:44px;font-family:var(--font-mono);color:var(--muted);align-self:flex-start;align-items:center;margin-top:-4px;font-size:12px;display:inline-flex;position:relative}.source:hover{color:var(--accent-hover)}.pill{font-family:var(--font-mono);background:var(--building-bg);color:var(--building);border-radius:999px;padding:1px 8px;font-size:11px}.pill.live{background:var(--live-bg);color:var(--live)}.pill.archived{background:var(--surface);color:var(--muted)}.tagline{color:var(--muted);font-size:15px}.bullets{color:var(--text-2);flex-direction:column;gap:2px;margin-top:4px;font-size:14px;display:flex}.bullets li{gap:10px;display:flex}.bullets li>span:first-child{color:var(--accent)}.resume{gap:48px}.resume .section-label{margin-bottom:-16px}.row{flex-wrap:wrap;gap:8px 24px;display:flex}.row-label{font-family:var(--font-mono);color:var(--muted);flex:0 0 120px;padding-top:5px;font-size:12px}.row-body{flex-direction:column;flex:360px;gap:20px;min-width:0;display:flex}.company{font-size:19px;font-weight:500}.company span{color:var(--faint);font-size:15px;font-weight:400}.role{border-left:1px solid var(--border);flex-direction:column;gap:10px;padding-left:16px;display:flex}.role-title{font-weight:500}.extra{color:var(--text-2);flex:360px;font-size:15px}.row-label.small{padding-top:4px}.download{border:1px solid var(--border);min-height:44px;font-family:var(--font-mono);color:var(--accent);border-radius:8px;align-self:flex-start;align-items:center;padding:0 16px;font-size:13px;display:inline-flex}.download:hover{color:var(--accent-hover);border-color:var(--accent)}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}html{scroll-behavior:auto}}.notfound{flex-direction:column;justify-content:center;gap:16px;max-width:1180px;min-height:100vh;margin:0 auto;padding:0 24px;display:flex}.notfound h1{letter-spacing:-.03em;font-size:44px;font-weight:600}.notfound p{color:var(--muted)}.notfound a{color:var(--accent)}
