@import"https://fonts.googleapis.com/css2?family=DM+Serif+Display:ital@0;1&family=DM+Mono:wght@300;400&family=DM+Sans:wght@300;400;500&display=swap";:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;background-color:#242424;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}body{margin:0;display:flex;place-items:center;min-width:320px;min-height:100vh}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}@media(prefers-color-scheme:light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg: #faf9f7;--ink: #1a1916;--mid: #6b6760;--soft: #e8e5e0;--accent: #c8441a;--serif: "DM Serif Display", Georgia, serif;--mono: "DM Mono", monospace;--sans: "DM Sans", sans-serif}html{scroll-behavior:smooth}body{background:var(--bg);color:var(--ink);font-family:var(--sans);font-weight:500;line-height:1.6;-webkit-font-smoothing:antialiased}nav{position:fixed;top:0;left:0;right:0;z-index:100;display:flex;justify-content:space-between;align-items:center;padding:1.5rem 4rem;background:var(--bg);border-bottom:1px solid transparent;transition:border-color .3s}nav.scrolled{border-bottom-color:var(--soft)}.nav-logo{font-family:var(--serif);font-size:1.2rem;letter-spacing:.01em;color:var(--ink);text-decoration:none}.nav-links{display:flex;gap:2.5rem;list-style:none}.nav-links a{font-family:var(--mono);font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:var(--mid);text-decoration:none;transition:color .2s}.nav-links a:hover{color:var(--ink)}section{min-height:100vh;padding:8rem 4rem 6rem;max-width:1200px;margin:0 auto}#hero{display:flex;flex-direction:column;justify-content:center;min-height:100vh;padding-top:6rem}.hero-eyebrow{font-family:var(--mono);font-size:.8rem;letter-spacing:.15em;text-transform:uppercase;color:var(--accent);margin-bottom:1.5rem;opacity:0;animation:fadeUp .8s .2s forwards}.hero-name{font-family:var(--serif);font-size:clamp(3.5rem,8vw,6.5rem);line-height:1.05;letter-spacing:-.02em;margin-bottom:1.5rem;opacity:0;animation:fadeUp .8s .4s forwards}.hero-name em{font-style:italic;color:var(--mid)}.hero-desc{font-size:1.1rem;color:var(--mid);max-width:480px;line-height:1.7;opacity:0;animation:fadeUp .8s .6s forwards}.hero-cta{margin-top:3rem;display:flex;gap:1.5rem;align-items:center;opacity:0;animation:fadeUp .8s .8s forwards}.btn-primary{background:var(--ink);color:var(--bg);padding:.75rem 2rem;font-family:var(--mono);font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;border:none;cursor:pointer;text-decoration:none;transition:background .2s}.btn-primary:hover{background:var(--accent)}.btn-ghost{font-family:var(--mono);font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:var(--mid);text-decoration:none;border-bottom:1px solid var(--soft);padding-bottom:2px;transition:color .2s,border-color .2s}.btn-ghost:hover{color:var(--ink);border-color:var(--ink)}.section-label{font-family:var(--mono);font-size:.82rem;letter-spacing:.15em;text-transform:uppercase;color:var(--accent);margin-bottom:3rem;display:flex;align-items:center;gap:1rem}.section-label:after{content:"";flex:1;max-width:60px;height:1px;background:var(--soft)}.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:4rem;align-items:start}.about-heading{font-family:var(--serif);font-size:clamp(2.5rem,5vw,3.75rem);line-height:1.15;letter-spacing:-.02em;margin-bottom:1.5rem}.about-text{color:var(--mid);line-height:1.8;font-size:.95rem}.about-text p+p{margin-top:1rem}.about-details{padding-top:.5rem}.detail-row{display:flex;justify-content:space-between;align-items:baseline;padding:1rem 0;border-bottom:1px solid var(--soft)}.detail-label{font-family:var(--mono);font-size:.65rem;letter-spacing:.1em;text-transform:uppercase;color:var(--mid)}.detail-value{font-size:.88rem;color:var(--ink);text-align:right}#education{min-height:auto}.edu-list{display:flex;flex-direction:column;margin-top:.5rem}.edu-item{display:grid;grid-template-columns:80px 1fr;gap:2rem;padding:2rem 0;border-top:1px solid var(--soft)}.edu-item:last-child{border-bottom:1px solid var(--soft)}.edu-year{font-family:var(--mono);font-size:.72rem;letter-spacing:.06em;color:var(--mid);padding-top:.25rem}.edu-degree{font-family:var(--serif);font-size:1.3rem;letter-spacing:-.01em;margin-bottom:.3rem}.edu-school{font-size:.88rem;color:var(--mid);margin-bottom:.5rem}.edu-detail{font-family:var(--mono);font-size:.65rem;letter-spacing:.06em;color:var(--mid);line-height:1.7}.skills-layout{display:grid;grid-template-columns:1fr 1fr;gap:4rem;align-items:start}.skill-groups{display:flex;flex-direction:column;gap:2rem}.skill-group-label{font-family:var(--mono);font-size:.65rem;letter-spacing:.12em;text-transform:uppercase;color:var(--mid);margin-bottom:.75rem}.skill-chips{display:flex;flex-wrap:wrap;gap:.4rem}.skill-chip{font-family:var(--mono);font-size:.65rem;letter-spacing:.04em;padding:.3rem .7rem;border:1px solid var(--soft);color:var(--ink);background:transparent;transition:background .15s,border-color .15s}.exp-list{display:flex;flex-direction:column;gap:0}.exp-item{display:flex;gap:1rem;align-items:baseline;padding:.9rem 0;border-top:1px solid var(--soft);font-size:.88rem;color:var(--mid);line-height:1.5}.exp-item:last-child{border-bottom:1px solid var(--soft)}.exp-dot{color:var(--accent);font-size:.6rem;flex-shrink:0;margin-top:.35rem}.skills-heading{font-family:var(--serif);font-size:clamp(2.2rem,4vw,3.25rem);line-height:1.15;letter-spacing:-.02em;margin-bottom:2rem}.projects-list{display:flex;flex-direction:column;gap:1px}.project-card{padding:2rem 0;border-top:1px solid var(--soft);display:grid;grid-template-columns:auto 1fr auto;gap:2rem;align-items:start;cursor:pointer;transition:background .2s;position:relative}.project-card:last-child{border-bottom:1px solid var(--soft)}.project-num{font-family:var(--mono);font-size:.68rem;color:var(--soft);letter-spacing:.05em;padding-top:.2rem}.project-title{font-family:var(--serif);font-size:1.4rem;letter-spacing:-.01em;margin-bottom:.5rem;transition:color .2s}.project-card:hover .project-title{color:var(--accent)}.project-desc{font-size:.88rem;color:var(--mid);line-height:1.6;max-width:480px}.project-tags{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.75rem}.project-tag{font-family:var(--mono);font-size:.6rem;letter-spacing:.06em;padding:.2rem .5rem;background:var(--soft);color:var(--mid)}.project-arrow{font-size:1.2rem;color:var(--soft);transition:color .2s,transform .2s;padding-top:.2rem}.project-card:hover .project-arrow{color:var(--ink);transform:translate(4px)}.resume-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem;gap:2rem}.resume-header .resume-heading{font-size:clamp(1.4rem,2.5vw,2rem);margin-bottom:0}.resume-embed{width:100%;height:80vh;border:1px solid var(--soft);background:var(--soft)}.resume-fallback{width:100%;height:80vh;border:1px solid var(--soft);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;background:#f5f3f0}.resume-fallback-text{font-family:var(--mono);font-size:.72rem;letter-spacing:.08em;color:var(--mid)}#contact{display:flex;flex-direction:column;justify-content:center}.contact-heading{font-family:var(--serif);font-size:clamp(3rem,6vw,5rem);line-height:1.1;letter-spacing:-.02em;margin-bottom:1.5rem}.contact-heading em{font-style:italic;color:var(--mid)}.contact-sub{color:var(--mid);font-size:.95rem;max-width:400px;line-height:1.7;margin-bottom:3rem}.contact-links{display:flex;flex-direction:column;gap:0}.contact-link{display:flex;justify-content:space-between;align-items:center;padding:1.25rem 0;border-top:1px solid var(--soft);text-decoration:none;color:var(--ink);transition:padding-left .2s}.contact-link:last-child{border-bottom:1px solid var(--soft)}.contact-link:hover{padding-left:.5rem}.contact-link:hover .contact-link-arrow{transform:translate(4px)}.contact-link-label{font-family:var(--serif);font-size:1.3rem;letter-spacing:-.01em}.contact-link-arrow{color:var(--mid);font-size:1rem;transition:transform .2s}.email-box{display:flex;justify-content:space-between;align-items:center;padding:1.25rem 0;border-top:1px solid var(--soft);border-bottom:1px solid var(--soft);margin-bottom:-1px}.email-box-label{font-family:var(--serif);font-size:1.3rem;letter-spacing:-.01em}.email-value{font-family:var(--mono);font-size:.8rem;letter-spacing:.04em;color:var(--mid);background:var(--soft);padding:.4rem .9rem;-webkit-user-select:all;user-select:all}footer{max-width:1200px;margin:0 auto;padding:2rem 4rem;border-top:1px solid var(--soft);display:flex;justify-content:space-between;align-items:center}.footer-text{font-family:var(--mono);font-size:.65rem;letter-spacing:.08em;color:var(--mid)}@keyframes fadeUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.fade-in{opacity:0;transform:translateY(16px);transition:opacity .7s,transform .7s}.fade-in.visible{opacity:1;transform:translateY(0)}@media(max-width:700px){nav{padding:1.25rem 1.5rem}section{padding:7rem 1.5rem 4rem}.about-grid{grid-template-columns:1fr;gap:2rem}.skills-layout{grid-template-columns:1fr;gap:2.5rem}.project-card{grid-template-columns:auto 1fr}.project-arrow{display:none}footer{padding:2rem 1.5rem;flex-direction:column;gap:.5rem;text-align:center}}#resume{min-height:auto}.resume-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:3rem;gap:2rem}.resume-heading{font-size:clamp(1.4rem,2.5vw,2rem)!important;margin-bottom:0!important}.resume-section-title{font-family:var(--mono);font-size:.68rem;letter-spacing:.18em;text-transform:uppercase;color:var(--accent);padding-bottom:.75rem;border-bottom:1px solid var(--soft);margin-bottom:1.5rem;margin-top:3rem}.resume-block{padding:1.5rem 0;border-bottom:1px solid var(--soft)}.resume-block-header{display:flex;justify-content:space-between;align-items:start;gap:2rem;margin-bottom:1rem}.resume-block-title{font-family:var(--serif);font-size:1.2rem;letter-spacing:-.01em;margin-bottom:.2rem}.resume-block-org{font-size:.85rem;color:var(--mid)}.resume-block-meta{display:flex;flex-direction:column;align-items:flex-end;gap:.2rem;flex-shrink:0;font-family:var(--mono);font-size:.65rem;letter-spacing:.05em;color:var(--mid);white-space:nowrap}.resume-bullets{list-style:none;display:flex;flex-direction:column;gap:.5rem}.resume-bullets li{font-size:.88rem;color:var(--mid);line-height:1.65;padding-left:1.25rem;position:relative}.resume-bullets li:before{content:"◆";position:absolute;left:0;color:var(--accent);font-size:.45rem;top:.45rem}.resume-pubs{display:flex;flex-direction:column}.resume-pub-item{display:flex;gap:1.25rem;align-items:baseline;padding:1rem 0;border-bottom:1px solid var(--soft)}.resume-pub-status{font-family:var(--mono);font-size:.6rem;letter-spacing:.08em;text-transform:uppercase;color:var(--accent);background:#f5ece8;padding:.2rem .5rem;white-space:nowrap;flex-shrink:0}.resume-pub-text{font-size:.85rem;color:var(--mid);line-height:1.6}.resume-skills{display:flex;flex-direction:column}.resume-skill-row{display:grid;grid-template-columns:130px 1fr;gap:2rem;padding:.85rem 0;border-bottom:1px solid var(--soft);align-items:baseline}.resume-skill-label{font-family:var(--mono);font-size:.65rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ink);font-weight:400}.resume-skill-value{font-size:.85rem;color:var(--mid);line-height:1.6}#experience{min-height:auto}.exp-block{padding:2rem 0;border-top:1px solid var(--soft);border-bottom:1px solid var(--soft)}.exp-block-header{display:flex;justify-content:space-between;align-items:start;gap:2rem;margin-bottom:1.5rem}.exp-block-title{font-family:var(--serif);font-size:1.5rem;letter-spacing:-.01em;margin-bottom:.3rem}.exp-block-org{font-size:.9rem;color:var(--mid)}.exp-block-meta{display:flex;flex-direction:column;align-items:flex-end;gap:.2rem;flex-shrink:0;font-family:var(--mono);font-size:.65rem;letter-spacing:.05em;color:var(--mid);white-space:nowrap}.exp-block-bullets{list-style:none;display:flex;flex-direction:column;gap:.6rem}.exp-block-bullets li{font-size:.9rem;color:var(--mid);line-height:1.7;padding-left:1.25rem;position:relative}.exp-block-bullets li:before{content:"◆";position:absolute;left:0;color:var(--accent);font-size:.45rem;top:.5rem}#publications{min-height:auto}.pubs-list{display:flex;flex-direction:column}.pub-item{display:flex;gap:1.5rem;align-items:baseline;padding:1.25rem 0;border-top:1px solid var(--soft)}.pub-item:last-child{border-bottom:1px solid var(--soft)}.pub-status{font-family:var(--mono);font-size:.6rem;letter-spacing:.08em;text-transform:uppercase;color:var(--accent);background:#f5ece8;padding:.25rem .6rem;white-space:nowrap;flex-shrink:0}.pub-text{font-size:.9rem;color:var(--mid);line-height:1.65}#skills{min-height:auto}.skill-groups{display:flex;flex-direction:column;gap:2.5rem}.skill-group-label{font-family:var(--mono);font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--mid);margin-bottom:1rem}.skill-chips{display:flex;flex-wrap:wrap;gap:.6rem}.skill-chip{font-family:var(--mono);font-size:.78rem;letter-spacing:.03em;padding:.5rem 1rem;border:1px solid var(--soft);color:var(--ink);background:transparent;transition:background .15s,border-color .15s}.skill-chip:hover{background:var(--soft)}#leadership{min-height:auto}.leadership-list{display:flex;flex-direction:column;margin-bottom:3rem}.leadership-item{padding:1.5rem 0;border-top:1px solid var(--soft)}.leadership-item:last-child{border-bottom:1px solid var(--soft)}.leadership-header{display:flex;justify-content:space-between;align-items:start;gap:2rem}.leadership-title{font-family:var(--serif);font-size:1.2rem;letter-spacing:-.01em;margin-bottom:.2rem}.leadership-org{font-size:.88rem;color:var(--mid);margin-bottom:.4rem}.leadership-desc{font-size:.85rem;color:var(--mid);line-height:1.6;max-width:600px}.leadership-period{font-family:var(--mono);font-size:.65rem;letter-spacing:.05em;color:var(--mid);white-space:nowrap;flex-shrink:0}.memberships{padding-top:1rem}.memberships-label{font-family:var(--mono);font-size:.65rem;letter-spacing:.12em;text-transform:uppercase;color:var(--mid);margin-bottom:1rem}.memberships-list{display:flex;flex-wrap:wrap;gap:.6rem}.membership-item{font-family:var(--mono);font-size:.72rem;letter-spacing:.03em;padding:.4rem .9rem;border:1px solid var(--soft);color:var(--mid)}#cv{min-height:auto}.cv-header{display:flex;justify-content:space-between;align-items:center;gap:2rem;padding:2rem 0;border-top:1px solid var(--soft);border-bottom:1px solid var(--soft)}.cv-heading{font-size:clamp(1.4rem,2.5vw,2rem)!important;margin-bottom:0!important}.cv-buttons{display:flex;gap:1rem;flex-shrink:0}.btn-outline{background:transparent;color:var(--ink);padding:.75rem 2rem;font-family:var(--mono);font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;border:1px solid var(--ink);cursor:pointer;text-decoration:none;transition:background .2s,color .2s}.btn-outline:hover{background:var(--ink);color:var(--bg)}.project-card--static{cursor:default}.project-card--static:hover .project-title{color:inherit}
