@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;450;500;550;600;650;700&family=Manrope:wght@400;500;600;650;700;750;800&display=swap');
:root{--ink:#101b2a;--muted:#526071;--blue:#124ce8;--pale:#edf3ff;--line:#d7dfe8;--paper:#fafbfc;--white:#fff;--display:'Manrope',Arial,sans-serif;--body:'DM Sans',Arial,sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:2rem}body{margin:0;background:var(--paper);color:var(--ink);font:1.0625rem/1.65 var(--body);-webkit-font-smoothing:antialiased}a{color:inherit;text-underline-offset:.22em}button,a{-webkit-tap-highlight-color:transparent}a:focus-visible,summary:focus-visible,button:focus-visible{outline:3px solid var(--blue);outline-offset:5px}.wrap{max-width:1264px;margin:0 auto;padding:0 48px}.skip-link{position:absolute;left:20px;top:-80px;background:var(--ink);color:#fff;padding:12px;z-index:10}.skip-link:focus{top:10px}.site-header{display:flex;align-items:center;justify-content:space-between;min-height:108px}.wordmark{font:800 1.45rem/1 var(--display);letter-spacing:-.08em;text-decoration:none;display:flex;align-items:center;gap:12px}.wordmark-rule{width:32px;height:3px;background:var(--blue);display:block}nav{display:flex;align-items:center;gap:34px;font-size:.9375rem;font-weight:550}nav a{text-decoration:none}nav a:hover{color:var(--blue)}nav .nav-contact{border-bottom:1px solid var(--ink);padding:6px 0}.nav-contact span{margin-left:18px}.hero{padding-top:40px}.hero-top{display:flex;justify-content:space-between;align-items:center;gap:20px;border-top:1px solid var(--line);padding-top:26px}.eyebrow{font-size:.8125rem;font-weight:650;letter-spacing:.12em;margin:0;text-transform:uppercase}.location{font-size:.875rem;color:var(--muted);margin:0}.location span{padding:0 8px;color:#8595aa}.hero-grid{display:grid;grid-template-columns:1.15fr 1fr;gap:7%;padding:54px 0 64px}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-family:var(--display)}h1{font-size:clamp(3.6rem,6.5vw,5.5rem);line-height:1.04;font-weight:650;letter-spacing:-.07em;margin-bottom:32px}.period{color:var(--blue)}.hero-statement{font:500 clamp(1.65rem,2.7vw,2.3rem)/1.3 var(--display);letter-spacing:-.04em;margin:0}.hero-statement span{color:var(--blue)}.hero-summary{align-self:center;padding-top:18px}.intro{font:500 1.6rem/1.45 var(--display);letter-spacing:-.03em;margin-bottom:24px}.hero-summary>p:not(.intro){color:var(--muted)}.actions{display:flex;align-items:center;gap:28px;flex-wrap:wrap;margin-top:30px}.button{display:inline-flex;gap:28px;align-items:center;justify-content:center;min-height:52px;padding:12px 22px;border:1px solid transparent;text-decoration:none;font-size:.9375rem;font-weight:550}.primary{background:var(--blue);color:#fff}.primary:hover{background:#083cc2}.text-link{font-size:.9375rem;font-weight:600;text-decoration:none;border-bottom:1px solid var(--line);padding:7px 0}.text-link span{margin-left:8px}.text-link:hover{color:var(--blue)}.hero-summary .availability{font-size:.875rem;margin:19px 0 0}.credentials{display:grid;grid-template-columns:1fr 1.12fr 1.5fr;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:26px 0;gap:30px}.credentials>div{display:flex;flex-direction:column}.credentials>div+div{border-left:1px solid var(--line);padding-left:30px}.credential-value{font-family:var(--display);font-weight:650;font-size:1.0625rem;letter-spacing:-.02em}.credential-label{font-size:.875rem;color:var(--muted);margin-top:5px}.section{padding-top:98px;padding-bottom:80px}.section-heading{display:grid;grid-template-columns:1fr 2fr;gap:40px;margin-bottom:46px}.section-heading .eyebrow{padding-top:12px}h2{font-size:clamp(2rem,3.4vw,3rem);line-height:1.17;font-weight:550;letter-spacing:-.05em;margin-bottom:30px}.section-heading h2{margin-bottom:0}.feature{padding:42px;background:var(--pale);max-width:100%}.feature h3{font-size:2rem;line-height:1.25;letter-spacing:-.04em;margin:20px 0}.feature p:last-child{max-width:700px;margin-bottom:0}.about-copy{max-width:640px}.contact-section{padding:80px 0;background:var(--ink);color:#fff}.contact-section .eyebrow{color:#8dc5ff;margin-bottom:28px}.contact-section h2{font-size:clamp(2.6rem,4.4vw,4rem)}.contact-email{font-size:clamp(1.1rem,2.6vw,1.8rem);text-decoration:none;border-bottom:1px solid #58718c;padding-bottom:9px;display:inline-block}.contact-email span{padding-left:20px}.contact-section p:last-child{color:#b7c4d3;font-size:.9375rem;margin:24px 0 0}footer{display:flex;align-items:center;justify-content:space-between;min-height:90px;font-size:.875rem}footer a{text-decoration:none}footer span{font-weight:600}
@media(min-width:1500px){.wrap{max-width:1376px}.hero-grid{padding:70px 0 80px}h1{font-size:6.2rem}}
@media(max-width:800px){.wrap{padding-left:28px;padding-right:28px}.site-header{min-height:88px}nav{gap:22px}.hero{padding-top:22px}.hero-top{align-items:flex-start}.location{max-width:180px;text-align:right}.hero-grid{grid-template-columns:1fr;gap:28px;padding:40px 0}h1{font-size:clamp(3.4rem,11vw,5.8rem)}.hero-summary{max-width:600px;padding-top:0}.intro{font-size:1.45rem}.credentials{grid-template-columns:1fr 1fr;gap:22px}.credentials>div+div{padding-left:0;border-left:0}.credentials>div:last-child{grid-column:1/-1}.section{padding-top:65px;padding-bottom:55px}.section-heading{grid-template-columns:1fr;gap:20px;margin-bottom:32px}.section-heading .eyebrow{padding-top:0}.contact-section{padding:60px 0}}
@media(max-width:480px){.wrap{padding-left:22px;padding-right:22px}.site-header{min-height:78px}nav{gap:18px;font-size:.875rem}nav a[href='#about']{display:none}.wordmark-rule{display:none}.hero-top{display:block}.location{max-width:none;text-align:left;margin-top:12px;font-size:.8125rem}.eyebrow{font-size:.75rem;letter-spacing:.09em}h1{font-size:clamp(2.65rem,11.5vw,4rem);letter-spacing:-.06em}.hero-statement{font-size:1.7rem}.hero-grid{padding-top:32px;gap:32px}.intro{font-size:1.3rem}.actions{gap:20px}.credentials{grid-template-columns:1fr;gap:20px}.credentials>div:last-child{grid-column:auto}.credential-value{font-size:1rem}.feature{padding:26px}.feature h3{font-size:1.55rem}.contact-email span{padding-left:8px}}
.section-intro{max-width:590px;color:var(--muted);margin:22px 0 0}.research-feature{display:grid;grid-template-columns:1.25fr 1fr;background:var(--ink);color:#fff;overflow:hidden}.research-main{padding:44px 46px 38px}.research-main>.eyebrow{color:#93c8ff}.research-main h3{font-size:2.2rem;font-weight:500;line-height:1.2;letter-spacing:-.045em;margin:22px 0}.research-main>p:not(.eyebrow){color:#c3cfdd}.paper-links{display:flex;flex-wrap:wrap;gap:12px 30px;margin-top:28px}.paper-links a{font-size:.9375rem;text-decoration:none;border-bottom:1px solid #697e99;padding-bottom:4px}.paper-links a:hover{color:#93c8ff}.research-main p.research-credit{font-size:.8125rem;margin:14px 0 0;color:#9dacbf}.research-process{border-left:1px solid #354154;padding:44px 34px;background:#152336}.process-heading{font-size:.8125rem;letter-spacing:.13em;color:#93c8ff;font-weight:600}.research-process ol{list-style:none;padding:0;margin:30px 0 0}.research-process li{display:flex;gap:22px;padding:18px 0;border-bottom:1px solid #354154}.research-process li:first-child{padding-top:0}.research-process li:last-child{border-bottom:0;padding-bottom:0}.step-number{font-size:.875rem;color:#93c8ff;padding-top:4px;font-variant-numeric:tabular-nums}.research-process strong{display:block;font:500 1.3rem/1.4 var(--display);letter-spacing:-.02em}.research-process li div>span{color:#adbcd0;font-size:.875rem;display:block;margin-top:3px}.case-list{margin-top:30px}.case{border-bottom:1px solid var(--line)}.case summary{display:grid;grid-template-columns:38px 1fr 38px;align-items:start;gap:20px;padding:30px 0;cursor:pointer;list-style:none}.case summary::-webkit-details-marker{display:none}.case summary::marker{content:''}.case-number{color:var(--muted);font-size:.875rem;padding-top:1px}.case-title{display:block}.case-title>.eyebrow{color:var(--muted);font-size:.75rem}.case h3{font-size:1.4rem;font-weight:600;letter-spacing:-.03em;line-height:1.35;margin:10px 0 9px}.case-outcome{display:block;font-size:.9375rem;color:var(--muted)}.case-toggle{width:36px;height:36px;display:flex;align-items:center;justify-content:center;border:1px solid var(--line);font-size:1.6rem;line-height:1;margin-top:20px;transition:transform .15s}.case[open] .case-toggle{transform:rotate(45deg)}.case summary:hover h3{color:var(--blue)}.case[open] summary{padding-bottom:20px}.case-body{padding:0 68px 28px 58px;max-width:900px;color:var(--muted)}.case-body p{margin-bottom:15px}.case-body .case-takeaway{border-left:2px solid var(--blue);padding-left:20px;margin:25px 0 0;color:var(--ink)}.work-note{font-size:.8125rem;color:var(--muted);margin:20px 0 0}.opportunities{padding:80px 0;background:#eef2f8;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.opportunity-grid{display:grid;grid-template-columns:1fr 1fr;background:#fff;border:1px solid var(--line)}.opportunity-grid article{padding:38px 42px;display:flex;align-items:flex-start;flex-direction:column}.opportunity-grid article+article{border-left:1px solid var(--line)}.opportunity-grid .eyebrow{color:var(--blue)}.opportunity-grid h3{font-size:1.85rem;line-height:1.25;letter-spacing:-.04em;font-weight:550;margin:25px 0 22px}.opportunity-grid p:not(.eyebrow){color:var(--muted)}.opportunity-grid .text-link{margin-top:auto;color:var(--blue)}.project-options{list-style:none;margin:0 0 24px;padding:0}.project-options li+li{margin-top:20px}.project-options strong{font-weight:600;display:block}.project-options span{display:block;font-size:.9375rem;color:var(--muted);margin-top:4px}.opportunity-note{font-size:.9375rem;color:var(--muted);max-width:820px;margin:24px 0 0}.about-grid{display:grid;grid-template-columns:1fr 1.14fr;gap:10%;padding-top:92px;padding-bottom:95px}.about-grid h2{margin-top:26px}.about-grid>div>p:not(.eyebrow){color:var(--muted)}.resume-button{border-color:var(--ink);margin-top:20px}.resume-button:hover{background:var(--ink);color:#fff}.file-meta{display:block;color:var(--muted);font-size:.8125rem;margin-top:8px}.timeline{list-style:none;margin:0;padding:0}.timeline li{border-left:1px solid var(--line);padding:0 0 28px 28px;position:relative}.timeline li:before{content:'';position:absolute;width:7px;height:7px;background:var(--blue);left:-4px;top:9px}.timeline-date{font-size:.8125rem;color:var(--muted);font-weight:500;font-variant-numeric:tabular-nums}.timeline h3{font-size:1.0625rem;letter-spacing:-.015em;margin:8px 0 7px;font-weight:650}.timeline p{font-size:.9375rem;line-height:1.6;color:var(--muted);margin:0}.education{border-top:1px solid var(--line);padding-top:24px}.education>p:not(.eyebrow){font-size:.9375rem;line-height:1.8;margin:14px 0 22px}.education strong{font-weight:550}.award{display:flex;gap:16px;background:var(--pale);padding:20px}.award>span{font-size:1.7rem;line-height:1.2;color:var(--blue)}.award p{font-size:.8125rem;color:var(--muted);margin:0}.award p strong{font-size:.875rem;display:inline-block;color:var(--ink);margin-bottom:4px}.contact-grid{display:grid;grid-template-columns:1.5fr 1fr;gap:70px}.contact-aside{align-self:end;padding-bottom:6px}.contact-aside p:first-child{font-size:1.2rem;margin-bottom:15px}.contact-aside p:nth-child(2){font-size:1rem;color:#b7c4d3}.contact-aside a{font-size:.9375rem;text-decoration:none;display:inline-block;border-bottom:1px solid #58718c;padding-bottom:5px}.contact-aside p:last-child{font-size:.8125rem}.nav-resume-meta{margin-left:4px}
@media(max-width:1000px){.research-main{padding:34px}.research-process{padding:34px 25px}.research-main h3{font-size:1.9rem}.opportunity-grid article{padding:32px}.about-grid{gap:7%}.contact-grid{gap:36px}.contact-section h2{font-size:2.7rem}}
@media(max-width:800px){.research-feature{grid-template-columns:1fr}.research-process{border-left:0;border-top:1px solid #354154}.research-process ol{display:grid;grid-template-columns:1fr 1fr;gap:20px 30px}.research-process li,.research-process li:first-child{padding:0 0 16px}.research-process li:nth-child(3){border-bottom:0}.opportunities{padding:60px 0}.opportunity-grid article{padding:28px}.opportunity-grid h3{font-size:1.6rem}.about-grid{grid-template-columns:1fr;gap:45px}.about-grid>div:first-child{max-width:610px}.contact-grid{grid-template-columns:1fr;gap:40px}.contact-aside{max-width:460px}}
@media(max-width:600px){nav{gap:19px}.opportunity-grid{grid-template-columns:1fr}.opportunity-grid article+article{border-left:0;border-top:1px solid var(--line)}.opportunity-grid article{padding:30px}.opportunity-grid .text-link{margin-top:10px}.case summary{grid-template-columns:20px 1fr 28px;gap:12px}.case-toggle{width:28px;height:28px;font-size:1.3rem}.case h3{font-size:1.18rem}.case-body{padding:0 0 25px 32px}.case-outcome{font-size:.875rem}.research-main,.research-process{padding:28px}.research-process ol{grid-template-columns:1fr;gap:16px}.research-process li:nth-child(3){border-bottom:1px solid #354154}.research-process strong{font-size:1.1rem}.research-process li{gap:20px}.research-main h3{font-size:1.8rem}.paper-links{gap:13px}.paper-links a{font-size:.875rem}.contact-email{font-size:1.25rem}}
@media(max-width:650px){nav a[href='#about']{display:none}.wordmark-rule{display:none}nav{gap:20px}nav a{white-space:nowrap}nav .nav-contact span{margin-left:6px}.hero-top{display:block}.location{max-width:none;text-align:left;margin-top:12px}.hero-top .eyebrow{white-space:normal}}
@media(max-width:360px){nav{gap:12px}nav .nav-contact span,.nav-resume-meta{display:none}.contact-email{font-size:1.06rem}.research-main,.research-process,.opportunity-grid article{padding:22px}.contact-section h2{font-size:2.25rem}}
@media print{body{font-size:10pt;color:#000;background:white}.wrap{max-width:none;padding:0}.site-header,.actions,.contact-section,.opportunities,footer,.case-toggle,.resume-button,.file-meta{display:none}.hero{padding:0}h1{font-size:32pt}.hero-grid{padding:20px 0;grid-template-columns:1fr 1fr}.hero-statement{font-size:18pt}.intro{font-size:14pt}.section{padding:30px 0}.research-feature{color:#000;background:#fff;border:1px solid #bbb;break-inside:avoid}.research-main>p:not(.eyebrow),.research-main>.eyebrow,.research-main p.research-credit{color:#333}.research-process{display:none}.research-feature{grid-template-columns:1fr}.research-main{padding:20px}.research-main h3{font-size:19pt}.case{break-inside:avoid}.about-grid{gap:25px}h2{font-size:23pt}.education{break-inside:avoid}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.case-toggle{transition:none}}

/* Portfolio projects and source media */
.hero-grid{padding-top:42px;padding-bottom:48px}.hero-summary .availability{margin-top:18px}.section-heading{margin-bottom:40px}.apple-work{margin-bottom:70px}.portfolio-project-heading{display:grid;grid-template-columns:1fr 1fr;gap:60px;margin-bottom:32px}.portfolio-project-heading h3{font-size:2.4rem;line-height:1.2;font-weight:550;letter-spacing:-.045em;margin:17px 0 0}.portfolio-project-heading>.eyebrow{color:var(--blue)}.portfolio-project-heading>p{align-self:end;margin:0;color:var(--muted)}.lab-media{border:1px solid var(--line);background:#fff}.lab-media-intro{padding:24px 30px;border-bottom:1px solid var(--line);display:grid;grid-template-columns:1fr 2fr;gap:30px;align-items:start}.lab-media-intro h4{font-family:var(--display);font-size:1.1rem;margin:0;font-weight:600;letter-spacing:-.025em}.lab-media-intro p{margin:0;color:var(--muted);font-size:.9375rem}.video-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(300px,100%),1fr));gap:30px;padding:30px}.video-card{display:block;text-decoration:none}.video-image{position:relative;aspect-ratio:16/9;background:var(--ink);overflow:hidden}.video-image img{width:100%;height:100%;object-fit:cover;display:block}.video-watch{position:absolute;bottom:16px;left:16px;padding:8px 14px;background:#101b2a;color:#fff;font-size:.875rem;font-weight:500}.video-watch>span{margin-left:14px}.video-copy{padding-top:18px}.video-copy>.eyebrow{font-size:.75rem;color:var(--muted);letter-spacing:.07em}.video-copy h5{font-family:var(--display);font-size:1.18rem;font-weight:600;line-height:1.4;letter-spacing:-.025em;margin:10px 0}.video-copy>p:not(.eyebrow){font-size:.9375rem;line-height:1.55;color:var(--muted);margin-bottom:0}.video-card:hover h5{color:var(--blue)}.case-list{margin-top:55px}.contact-section{padding:60px 0}.contact-section .eyebrow{margin-bottom:20px}.contact-aside{padding-bottom:0}.contact-section h2{margin-bottom:25px}.about-grid{border-top:1px solid var(--line)}
@media(max-width:800px){.portfolio-project-heading{grid-template-columns:1fr;gap:22px}.portfolio-project-heading h3{font-size:2rem}.lab-media-intro{grid-template-columns:1fr;gap:10px;padding:23px}.video-grid{padding:23px;gap:32px}.hero-grid{padding-top:32px;padding-bottom:40px}.apple-work{margin-bottom:50px}}
@media(max-width:480px){.portfolio-project-heading h3{font-size:1.8rem}.video-grid{padding:18px}.lab-media-intro{padding:20px 18px}.video-watch{bottom:12px;left:12px;font-size:.8125rem;padding:7px 12px}.video-copy h5{font-size:1.07rem}.video-copy>.eyebrow{font-size:.75rem}.hero-grid{gap:24px}.case-list{margin-top:35px}}

.prototype-panel{background:#fff;color:var(--ink);padding:40px 32px;display:flex;flex-direction:column;justify-content:center;gap:30px;border:1px solid var(--line)}.prototype-panel>.eyebrow{color:var(--muted);margin-bottom:0}.prototype-panel figure{margin:0}.prototype-panel figure+figure{padding-top:24px;border-top:1px solid var(--line)}.prototype-panel img{width:100%;height:auto;display:block}.prototype-panel figcaption{font-size:.875rem;line-height:1.5;margin-top:18px}.prototype-panel figcaption strong{font-weight:600;display:block}.prototype-panel figcaption span{display:block;color:var(--muted);font-size:.8125rem;margin-top:4px}.research-gallery{display:grid;grid-template-columns:1fr 1fr;border:1px solid var(--line);border-top:0;background:#fff}.research-gallery figure{margin:0;min-width:0}.research-gallery figure+figure{border-left:1px solid var(--line)}.research-image{display:flex;align-items:center;justify-content:center;aspect-ratio:4/3;background:#fff;overflow:hidden}.research-image img{display:block;width:100%;height:100%;object-fit:contain}.pattern-plot{padding:20px}.research-gallery figcaption{padding:24px 28px;border-top:1px solid var(--line);font-size:.9375rem;line-height:1.6}.research-gallery figcaption strong{display:block;font-weight:600;margin-bottom:5px}.research-gallery figcaption span{display:block;color:var(--muted);font-size:.875rem}.figure-source{color:var(--muted);font-size:.8125rem;margin:16px 0 0;line-height:1.65}.figure-source a{color:var(--blue)}.video-short{background:#111}.video-short img{object-fit:contain}.research-feature .research-main{display:flex;flex-direction:column;justify-content:center}.research-feature .paper-links{margin-top:12px}.research-feature .research-main p.research-credit{margin-top:14px}
@media(max-width:800px){.prototype-panel{padding:28px;gap:24px}.prototype-panel img{max-width:650px}.research-gallery figcaption{padding:20px}.research-gallery .pattern-plot{padding:12px}.research-feature{grid-template-columns:1fr}}
@media(max-width:600px){.research-gallery{grid-template-columns:1fr}.research-gallery figure+figure{border-left:0;border-top:1px solid var(--line)}.research-gallery figcaption{padding:20px 22px}.prototype-panel{padding:26px 22px}.research-image{aspect-ratio:4/3}.pattern-plot{padding:12px}.prototype-panel figcaption{margin-top:14px}.figure-source{font-size:.8125rem}}

/* Colleague recommendations */
.recommendations{padding:64px 0 72px;background:#eef2f8;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.recommendations .section-heading{margin-bottom:32px}.recommendations h2{font-size:clamp(2rem,3.2vw,2.7rem)}.recommendation-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}.recommendation{margin:0;background:#fff;border:1px solid var(--line);padding:30px;display:flex;flex-direction:column;min-width:0}.recommendation blockquote{margin:0 0 28px;font:500 1.2rem/1.6 var(--display);letter-spacing:-.025em}.recommendation blockquote:before{content:'“';display:block;color:var(--blue);font-family:Georgia,serif;font-size:3rem;line-height:.8;margin:4px 0 12px}.recommendation blockquote p{margin:0}.recommendation figcaption{margin-top:auto;padding-top:20px;border-top:1px solid var(--line);font-size:.9375rem}.recommendation figcaption strong{display:block;font-weight:650}.recommendation figcaption span{display:block;color:var(--muted);font-size:.875rem;line-height:1.5;margin-top:5px}.recommendation-source{font-size:.875rem;color:var(--muted);margin:24px 0 0}.recommendation-source a{color:var(--blue)}.video-copy>p.frame-credit{font-size:.8125rem;color:var(--muted);margin-top:10px}.recommendations+.about-grid{border-top:0}
@media(max-width:900px){.recommendation-grid{gap:16px}.recommendation{padding:24px}.recommendation blockquote{font-size:1.06rem}}
@media(max-width:700px){.recommendations{padding:50px 0}.recommendation-grid{grid-template-columns:1fr;gap:18px}.recommendation blockquote{font-size:1.15rem;margin-bottom:24px}.recommendation{padding:26px}.recommendation blockquote:before{margin-bottom:8px}.recommendation figcaption{padding-top:16px}}
@media print{.recommendations{padding:24px 0;background:#fff}.recommendation-grid{gap:10px}.recommendation{padding:12px;break-inside:avoid}.recommendation blockquote{font-size:10pt}}

/* Private-by-default contact form */
.contact-grid{grid-template-columns:1fr 1.15fr;gap:70px}.contact-grid>div>p:not(.eyebrow){color:#b7c4d3;max-width:450px}.contact-grid .contact-location{font-size:.875rem;margin-top:28px}.contact-form{min-width:0}.form-row{margin-bottom:18px}.form-row label{display:block;font-size:.9375rem;margin-bottom:7px;font-weight:500}.form-row label span{color:#b7c4d3;font-weight:400}.form-row input,.form-row textarea{display:block;width:100%;border:1px solid #71849b;border-radius:3px;background:#fff;color:var(--ink);font:1rem/1.5 var(--body);padding:11px 12px}.form-row textarea{resize:vertical;min-height:145px}.form-row input:focus-visible,.form-row textarea:focus-visible{outline:3px solid #93c8ff;outline-offset:3px}.form-honey{display:none}.contact-form .contact-note{color:#b7c4d3;font-size:.875rem;line-height:1.6;margin:4px 0 22px}.contact-form .button{font-family:var(--body);cursor:pointer}.contact-form .button:disabled{opacity:.55;cursor:not-allowed}.contact-form .form-status{font-size:.875rem;margin:14px 0 0;color:#c5d7ed}.contact-form .form-status:empty{display:none}
@media(max-width:800px){.contact-grid{grid-template-columns:1fr;gap:35px}}
@media print{.contact-form{display:none}}

/* Personal context, with an original hobby-project photograph */
.personal-about{border-top:1px solid var(--line)}.personal-grid{display:grid;grid-template-columns:1.08fr 1fr;gap:65px;align-items:start}.personal-copy h2{margin-top:26px;font-size:clamp(2rem,3.25vw,2.8rem)}.personal-copy>p:not(.eyebrow){color:var(--muted)}.personal-copy .personal-intro{font-size:1.35rem;line-height:1.5;color:var(--ink);letter-spacing:-.02em}.personal-photo{margin:0;background:var(--ink);color:#fff}.personal-photo>a{display:block}.personal-photo img{display:block;width:100%;height:auto;aspect-ratio:4/5;object-fit:cover;object-position:50% 85%}.personal-photo figcaption{padding:22px 26px;font-size:1rem;line-height:1.5}.personal-photo figcaption strong{font-weight:550;display:block}.personal-photo figcaption span{display:block;color:#c0cede;font-size:.875rem;margin-top:6px}.personal-interests{display:grid;grid-template-columns:repeat(3,1fr);gap:36px;margin-top:48px;padding-top:32px;border-top:1px solid var(--line)}.personal-interests .eyebrow{color:var(--blue)}.personal-interests h3{font-size:1.25rem;letter-spacing:-.025em;margin:14px 0 12px}.personal-interests article>p:last-child{font-size:1rem;color:var(--muted);margin:0}.background-grid{display:grid;grid-template-columns:1fr 1.14fr;gap:10%;margin-top:60px;padding-top:45px;border-top:1px solid var(--line)}.background-grid>div:first-child>h3{font-size:1.65rem;font-weight:550;letter-spacing:-.03em;margin:20px 0 18px}.background-grid>div:first-child>p:last-child{color:var(--muted);max-width:360px}
@media(max-width:900px){.personal-grid{gap:35px}.personal-interests{gap:25px}}
@media(max-width:800px){.personal-grid,.background-grid{grid-template-columns:1fr;gap:35px}.personal-photo{max-width:540px}.personal-photo img{aspect-ratio:1/1;object-position:50% 100%}.personal-interests{grid-template-columns:1fr;gap:28px;margin-top:35px}.personal-copy h2{font-size:2.3rem}.personal-copy .personal-intro{font-size:1.2rem}.background-grid{margin-top:40px;padding-top:35px}}
@media print{.personal-photo{display:none}.personal-grid{grid-template-columns:1fr}.personal-interests{gap:15px}.background-grid{margin-top:25px;padding-top:20px}}

/* Additional original thesis figures and institutional source */
.thesis-diagram{padding:25px;aspect-ratio:4/3}.research-diagrams figcaption{min-height:134px}.thesis-source{display:grid;grid-template-columns:1.5fr 1fr;gap:35px;background:var(--pale);border:1px solid var(--line);border-top:0;padding:32px}.thesis-source h3{font-size:1.6rem;letter-spacing:-.035em;margin:15px 0 12px}.thesis-source p{font-size:1rem;margin-bottom:12px}.thesis-source .eyebrow{font-size:.75rem;color:var(--blue)}.thesis-source cite{font-style:normal}.thesis-source p.thesis-meta{font-size:.875rem;color:var(--muted);margin:0}.thesis-actions{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:16px}.thesis-actions .text-link{font-size:.875rem}.thesis-actions .button{gap:15px}
@media(max-width:800px){.thesis-source{grid-template-columns:1fr;gap:22px;padding:26px}.thesis-actions{gap:12px}.thesis-diagram{padding:16px}.research-diagrams figcaption{min-height:0}}

.nav-work-short{display:none}@media(max-width:650px){nav .nav-work-long{display:none}nav .nav-work-short{display:inline}nav a[href="#about"]{display:inline}nav{gap:15px}nav .nav-contact span,.nav-resume-meta{display:none}}@media(max-width:360px){nav{gap:10px;font-size:.8125rem}}

.personal-photo.portrait-photo img{aspect-ratio:1/1;object-fit:contain;object-position:center}.personal-photo.maker-photo{margin-top:24px}.personal-photo.maker-photo img{aspect-ratio:4/3;object-position:50% 80%}.personal-photo.maker-photo figcaption{padding:16px;font-size:.9rem}

.personal-photo.solo-portrait img{aspect-ratio:auto;height:auto;object-fit:contain;object-position:center}
