@font-face{font-family:Space;src:url('assets/space-regular.woff2') format('woff2');font-weight:400;font-display:swap}@font-face{font-family:Space;src:url('assets/space-medium.woff2') format('woff2');font-weight:500 800;font-display:swap}@font-face{font-family:Instrument;src:url('assets/instrument-regular.woff2') format('woff2');font-display:swap} :root{--paper:#eeeae2;--ink:#24251f;--muted:#626259;--line:#ccc8be;--accent:#a63720}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:24px}body{margin:0;background:var(--paper);color:var(--ink);font-family:Space,Arial,sans-serif;font-size:15px;line-height:1.65;-webkit-font-smoothing:antialiased}.page{max-width:920px;padding:0 40px;margin:auto}a{color:inherit;text-decoration:none}a:hover{color:var(--accent)}a:focus-visible,summary:focus-visible{outline:2px solid var(--accent);outline-offset:4px}::selection{background:#efb49e}header{display:flex;justify-content:space-between;align-items:center;gap:20px;padding-block:24px;border-bottom:1px solid var(--line)}.home{font-size:18px;letter-spacing:-.7px}nav,.links{display:flex;gap:25px}nav a,.links a,footer a,.section-heading>a{display:inline-flex;align-items:center;gap:6px;min-height:44px;font-size:13px}.icon{width:15px;height:15px;flex-shrink:0;vertical-align:middle}h1,h2,h3,p{margin:0}h1{font-family:Instrument,Georgia,serif;font-size:clamp(36px,6vw,52px);font-weight:400;line-height:1.15;letter-spacing:-1.4px}.intro{padding:43px 0 26px}.location{color:var(--muted);font-size:13px;margin-top:8px}.intro>p:not(.location){max-width:610px;margin-top:18px;font-size:16px;line-height:1.75}.links{margin-top:14px;gap:24px}.links a:first-child{color:var(--accent)}.section{padding-top:42px}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:15px}h2{font-family:Instrument,Georgia,serif;font-size:30px;line-height:1.2;font-weight:400;letter-spacing:-.4px}.section-heading>a{color:var(--muted);font-size:12px}.job{padding:22px 0;border-bottom:1px solid var(--line)}.job-heading,.job-meta{display:flex;align-items:baseline;justify-content:space-between;gap:20px}.job-heading h3{font-size:17px;font-weight:500;letter-spacing:-.35px}.job-heading>span{font-size:12px;color:var(--muted);white-space:nowrap}.job-meta{font-size:12px;color:var(--muted);margin-top:2px}.job ul{margin:11px 0 0;padding-left:18px;max-width:740px;font-size:14px;line-height:1.75}.job li+li{margin-top:5px}.job li::marker{color:#8b887e;font-size:.75em}.education{padding-top:30px}.education h2{font-size:26px;margin-bottom:14px}.education p{font-size:14px;display:flex;justify-content:space-between;gap:15px}.education p>span{font-size:12px;color:var(--muted)}.education p+p{margin-top:3px;color:var(--muted);font-size:13px}.skills{border-block:1px solid var(--line);margin-top:26px}.skills summary{cursor:pointer;min-height:55px;display:flex;align-items:center;justify-content:space-between;font-size:14px;list-style:none}.skills summary::-webkit-details-marker{display:none}.skills summary>span{font-size:22px;color:var(--muted)}.skills[open] summary>span{transform:rotate(45deg)}.skills>div{padding:0 0 20px;font-size:13px;color:var(--muted)}.skills p+p{margin-top:10px}.projects{padding-top:40px}.project{display:flex;align-items:center;justify-content:space-between;gap:20px;border-bottom:1px solid var(--line);padding:18px 0}.project h3{font-size:15px;font-weight:500;letter-spacing:-.2px}.project p{font-size:13px;color:var(--muted);margin-top:3px;line-height:1.65}.project>.icon{color:var(--accent);width:18px;height:18px}.project:hover h3{text-decoration:underline;text-underline-offset:4px}footer{display:flex;justify-content:space-between;gap:20px;padding:28px 0 35px;color:var(--muted)}.skip{position:fixed;top:10px;left:10px;transform:translateY(-200%);padding:10px;background:var(--ink);color:var(--paper);z-index:5}.skip:focus{transform:none} @media(max-width:600px){.page{padding-inline:22px}header{padding-block:14px;gap:12px}nav{gap:16px}nav a{font-size:12px}.home{font-size:16px}.intro{padding-top:32px}h1{font-size:39px}.intro>p:not(.location){font-size:15px}.section{padding-top:30px}.section-heading{gap:12px;margin-bottom:8px}h2{font-size:28px}.section-heading>a{font-size:11px}.job{padding-block:20px}.job-meta>span:last-child{display:none}.job ul{font-size:14px}.job-heading{gap:10px}.job-heading h3{font-size:16px}.job-heading>span{font-size:11px}.projects .section-heading{display:block}.projects .section-heading>a{min-height:36px}.education p{flex-wrap:wrap;gap:2px 12px}.links{gap:20px}.links a{font-size:12px}}@media(max-width:360px){.page{padding-inline:16px}h1{font-size:35px}nav{gap:11px}.section-heading>a{font-size:10px}.job-heading h3{font-size:15px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}} .project-meta{display:flex;align-items:center;gap:18px;margin-top:9px;color:var(--muted);font-size:11px;line-height:1.5}.star-count{display:inline-flex;align-items:center;gap:5px;font-variant-numeric:tabular-nums}.star-count .star{width:13px;height:13px}.star-count>span{margin-left:-1px} .intro{display:flow-root}.headshot{float:right;width:138px;height:138px;object-fit:cover;border-radius:4px;margin:0 0 20px 32px}.intro h1{font-size:clamp(35px,5vw,47px)}.intro-rule{border:0;border-top:1px solid var(--line);margin:9px 0 0}.links{align-items:center;flex-wrap:wrap}.links .resume-button{background:var(--ink);color:var(--paper);padding:10px 15px;gap:9px;border-radius:3px;min-height:44px}.links .resume-button:hover{background:var(--accent);color:white}.links .icon{width:17px;height:17px}.links a{gap:8px}@media(max-width:600px){.headshot{width:85px;height:85px;margin:0 0 16px 18px}.intro h1{font-size:36px;max-width:320px}.intro>p:not(.location){clear:both;padding-top:4px}.links{gap:10px 20px}.intro .location{max-width:220px;font-size:12px}}@media(max-width:360px){.headshot{width:70px;height:70px;margin-left:12px}.intro h1{font-size:32px}.links{gap:10px 16px}} .links a.resume-button{background:transparent;color:var(--ink);border:1px solid #aaa69b;box-shadow:none}.links a.resume-button:hover{background:#e3dfd5;color:var(--ink);border-color:#807e73}.headshot{border-radius:0;object-fit:contain} .headshot{mask-image:radial-gradient(ellipse at center,#000 53%,transparent 73%);-webkit-mask-image:radial-gradient(ellipse at center,#000 53%,transparent 73%)}