/* Palette inspired by Witch Hazel: https://github.com/theacodes/witchhazel */
@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@400;500;600;700;800&display=swap');
:root{color-scheme:dark;--bg:#433e56;--surface:#3c374d;--line:#716799;--text:#f8f8f2;--muted:#d3cfe0;--accent:#ffb8d1;--cyan:#c8f8ff;--lavender:#c5a3ff;--mono:ui-monospace,SFMono-Regular,Consolas,monospace;font-family:'DM Sans',sans-serif;background:var(--bg);color:var(--text);font-synthesis:none;scroll-behavior:smooth;scroll-padding-top:110px}*{box-sizing:border-box}body{margin:0;line-height:1.65;position:relative;isolation:isolate}body:before{content:'';position:fixed;inset:0;background-image:var(--chip-background);background-size:cover;background-position:center;background-repeat:no-repeat;transform:scale(1.12);opacity:.1;pointer-events:none;z-index:-1}a{color:inherit;text-decoration:none}button{font:inherit}a,button{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible{outline:2px solid var(--accent);outline-offset:6px}a:hover{color:var(--accent)}p{margin:0 0 1rem;color:var(--muted)}h1,h2,h3{font-family:Manrope,'DM Sans',sans-serif;font-weight:500;line-height:1.13;letter-spacing:-.045em;margin:0}h1{font-size:clamp(2.6rem,4.6vw,4.65rem)}h2{font-size:clamp(2rem,3.3vw,3.25rem)}h3{font-size:1.45rem;letter-spacing:-.025em}em{font-style:normal;color:var(--accent)}main,.site-header,.site-footer{max-width:1440px;margin:auto;padding-left:5.2%;padding-right:5.2%}.site-header{min-height:106px;display:flex;align-items:center;justify-content:space-between;gap:24px;background:rgba(53,49,68,.96);position:sticky;top:0;z-index:20;border-bottom:1px solid var(--line)}.wordmark{display:flex;align-items:center;gap:13px;font-size:1.05rem;font-weight:600;white-space:nowrap}.wordmark small{display:block;font-family:var(--mono);font-size:.55rem;letter-spacing:.1em;color:var(--muted);margin-top:2px}.monogram{display:grid;place-items:center;border:1px solid #8077a8;width:42px;height:42px;color:var(--accent);font:15px var(--mono)}nav{display:flex;align-items:center;gap:28px;font-size:.84rem}nav a{padding:10px 0}.nav-contact{border:1px solid var(--line);padding:10px 16px}.nav-contact span{margin-left:10px}.menu-toggle{display:none}.preview-note{display:flex;align-items:center;gap:10px;font:10px var(--mono);letter-spacing:.08em;color:var(--accent);padding-top:24px}.preview-description{color:var(--muted);letter-spacing:0} .status-dot{height:5px;width:5px;background:#c2ffdf;border-radius:50%;flex-shrink:0}.hero{display:grid;grid-template-columns:1fr 1fr;column-gap:36px;padding-top:80px}.hero-copy{padding:12px 0 30px;position:relative;z-index:1}.eyebrow{font:10px/1.6 var(--mono);letter-spacing:.14em;color:var(--cyan);text-transform:uppercase;margin:0 0 23px}.hero h1{margin-bottom:32px}.intro-name{color:var(--text);font-size:14px}.intro-name span{color:var(--muted);margin-left:6px}.hero-description{max-width:360px;font-size:16px}.actions{display:flex;gap:28px;align-items:center;flex-wrap:wrap;margin-top:30px}.button{display:inline-flex;align-items:center;gap:24px;padding:13px 20px;font-size:13px;font-weight:600;border:1px solid var(--line)}.primary{background:var(--accent);color:#353144;border-color:var(--accent)}.primary:hover{background:#c8f8ff;color:#353144}.text-link{font-size:13px;display:inline-flex;align-items:center;gap:16px}.hero-art{align-self:center;min-width:0}.chip-figure{margin:0}.chip-frame{background:#353144;border:1px solid var(--line);padding:40px 14px 20px;position:relative}.figure-label{position:absolute;left:16px;top:13px;font:9px var(--mono);letter-spacing:.1em;color:var(--muted)}.chip-frame img{width:100%;height:auto;display:block}.chip-figure figcaption{font:9px/1.6 var(--mono);display:flex;justify-content:space-between;gap:12px;margin-top:13px}.muted{color:var(--muted)}.hero-bottom{grid-column:1/-1;display:flex;justify-content:space-between;border-top:1px solid var(--line);padding:22px 0;margin-top:58px;color:var(--muted)}.mono{font-family:var(--mono);font-size:10px;letter-spacing:.055em}.section{padding:80px 0;border-bottom:1px solid var(--line);background:rgba(53,49,68,.58)}.section-heading{display:flex;justify-content:space-between;gap:28px;align-items:end;margin-bottom:40px}.section-heading .eyebrow{margin-bottom:16px}.placeholder-tag{font:9px/1.5 var(--mono);color:#d3cfe0;border:1px solid #8077a8;padding:5px 8px;display:inline-block;letter-spacing:.03em;white-space:nowrap}.highlights{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.highlight{position:relative;padding:32px 30px 22px 0}.highlight+.highlight{border-left:1px solid var(--line);padding-left:30px}.highlight-number{position:absolute;right:24px;top:28px;font:12px var(--mono);color:#c5a3ff}.highlight .eyebrow{margin-bottom:28px}.highlight h3{max-width:260px;line-height:1.3;margin-bottom:16px}.highlight p:not(.eyebrow){font-size:14px}.split-section{display:grid;grid-template-columns:1fr 1.25fr;gap:80px}.split-section .section-heading{align-items:start;margin:0}.section-intro{max-width:260px;margin:22px 0;font-size:14px}.experience-item{padding:28px 0;border-top:1px solid var(--line)}.experience-item:first-child{padding-top:0;border:0}.experience-item .eyebrow{color:var(--muted);margin-bottom:12px}.experience-item h3{margin-bottom:8px}.experience-item p{font-size:14px}.experience-item .company{color:var(--accent);margin-bottom:16px}.heading-note{font-size:13px;margin-bottom:0}.research-feature{display:grid;grid-template-columns:1.2fr 1fr;background:var(--surface);border:1px solid var(--line)}.research-image{background:#353144;padding:30px;display:flex;align-items:center}.research-image .chip-frame{border:0;padding:20px 0 0}.research-image .figure-label{left:0;top:0}.research-image figcaption{display:none}.research-copy{padding:48px 36px}.research-copy h3{font-size:clamp(1.8rem,2.6vw,2.7rem);margin-bottom:22px}.research-copy p:not(.eyebrow){font-size:14px}.research-copy .text-link{margin-top:18px;color:var(--accent)}.research-resources{margin-top:24px;display:flex;justify-content:space-between;gap:20px;align-items:center}.research-resources p{font-size:12px;margin:0}.project-row{display:grid;grid-template-columns:65px 1fr 40px;gap:25px;border-top:1px solid var(--line);padding:30px 0 0}.project-index{color:var(--muted);padding-top:6px}.project-row h3{margin:16px 0 12px;font-size:1.8rem}.project-row p{max-width:640px;font-size:14px}.big-arrow{font-size:32px;color:var(--accent);align-self:center}.about-copy .placeholder-tag{margin-bottom:20px}.large-copy{font-size:21px;line-height:1.6;color:#f8f8f2}.about-copy>p:last-child{font-size:15px}.resume-section{display:flex;align-items:center;justify-content:space-between;gap:24px}.resume-section h2{margin-bottom:18px}.resume-section p:last-child{margin:0;font-size:14px}.unavailable{display:inline-block;padding:16px 20px;border:1px dashed #8077a8;color:var(--muted);font:11px var(--mono)}.unavailable span{margin-left:28px}.contact-section{padding:90px 0 100px}.contact-section h2{font-size:clamp(2.7rem,5.5vw,5.2rem);margin-bottom:25px}.site-footer{display:flex;justify-content:space-between;gap:24px;padding-top:28px;padding-bottom:28px;font-size:12px;background:var(--bg)}.site-footer a{margin-left:24px}.detail-page{max-width:940px;margin:auto;padding:70px 0 100px;min-height:70vh}.detail-header{padding:60px 0 40px}.detail-header h1{margin-bottom:24px}.detail-header .large-copy{max-width:720px}.detail-page .chip-figure{margin:12px 0 55px}.prose{max-width:720px;margin:auto;background:rgba(53,49,68,.78);padding:1px 24px 24px}.prose h2{font-size:1.7rem;margin:42px 0 20px}.prose p{font-size:16px}.prose blockquote{border-left:2px solid var(--accent);margin:28px 0;padding:12px 20px;background:var(--surface)}.prose blockquote p{margin:0}.prose a{text-decoration:underline}.skip-link{position:fixed;top:8px;left:8px;transform:translateY(-150%);z-index:100;background:var(--accent);color:var(--bg);padding:10px 20px}.skip-link:focus{transform:translateY(0)}
@media(min-width:1600px){main,.site-header,.site-footer{padding-left:64px;padding-right:64px}.hero{padding-top:100px}}
@media(max-width:1050px){nav{gap:16px}.hero{column-gap:20px;padding-top:55px}.hero h1{font-size:3.1rem}.hero-art{margin-right:-10px}.split-section{gap:40px}.research-copy{padding:32px 24px}.research-image{padding:18px}.wordmark small{font-size:8px}}
@media(max-width:800px){main,.site-header,.site-footer{padding-left:6%;padding-right:6%}.site-header{min-height:82px}.menu-toggle{display:flex;gap:16px;color:var(--text);background:transparent;border:1px solid var(--line);padding:8px 12px;font-size:13px}nav{position:absolute;top:81px;left:0;right:0;padding:16px 6% 24px;background:var(--bg);border-bottom:1px solid var(--line);display:none;align-items:stretch}nav.is-open{display:flex;flex-direction:column;gap:2px}nav a{padding:12px}.preview-note{flex-wrap:wrap;font-size:9px}.preview-description{flex-basis:100%;font-size:10px;line-height:1.6}.hero{grid-template-columns:1fr;padding-top:45px}.hero h1{font-size:clamp(2.65rem,8vw,4rem)}.hero-copy{padding-bottom:35px}.hero-description{max-width:440px}.hero-art{margin:0}.chip-frame{padding:35px 8px 12px}.hero-bottom{gap:20px;margin-top:30px;font-size:8px}.hero-bottom span{max-width:190px}.section{padding:52px 0}.section-heading{align-items:start;flex-direction:column;gap:18px;margin-bottom:28px}.highlights{grid-template-columns:1fr}.highlight,.highlight+.highlight{padding:26px 0;border-left:0}.highlight+.highlight{border-top:1px solid var(--line)}.highlight h3{max-width:none}.highlight .eyebrow{margin-bottom:16px}.highlight-number{right:0}.split-section{grid-template-columns:1fr;gap:30px}.section-intro{max-width:400px}.research-feature{grid-template-columns:1fr}.research-image{padding:20px}.research-copy{padding:28px}.research-copy h3 br{display:none}.research-resources{align-items:start;flex-direction:column;gap:12px}.project-row{grid-template-columns:1fr 30px;gap:12px}.project-index{grid-column:1/-1}.resume-section{align-items:start;flex-direction:column}.contact-section{padding:60px 0}.site-footer{flex-direction:column;gap:12px}.site-footer .mono{display:flex;justify-content:space-between}.detail-page{padding-top:35px}.detail-header{padding:35px 0}.detail-header h1{font-size:2.7rem}.large-copy{font-size:19px}.chip-figure figcaption{font-size:8px}.heading-note br{display:none}}
@media(prefers-reduced-motion:reduce){:root{scroll-behavior:auto}}
@media print{.site-header,.preview-note,.hero-art,.hero-bottom,.site-footer,.menu-toggle,.actions{display:none}body,:root,.section{background:white;color:black}p{color:#333}.section{padding:24px 0}h1,h2,h3{break-after:avoid}a{color:black}body:before{display:none}}

::selection{background:#8077a8;color:#f8f8f2}

.construction-page{min-height:100svh;display:grid;place-items:center;padding-top:48px;padding-bottom:48px}.construction-content{max-width:800px;width:100%;padding:clamp(24px,5vw,64px);background:rgba(53,49,68,.72);border:1px solid var(--line)}.construction-content h1{margin-bottom:28px}.construction-content p:not(.eyebrow){max-width:480px}.construction-content .mono{margin-top:36px;margin-bottom:0;color:var(--cyan)}
