@font-face{font-family:DM Sans;src:url(/fonts/dm-sans.woff2) format("woff2");font-weight:400 700;font-display:swap}@font-face{font-family:Playfair;src:url(/fonts/playfair.woff2) format("woff2");font-weight:500;font-display:swap}@font-face{font-family:Playfair;src:url(/fonts/playfair-italic.woff2) format("woff2");font-weight:500;font-style:italic;font-display:swap}:root{--paper: #f6f5ef;--white: #fffefa;--ink: #172c26;--muted: #45574e;--accent: #315e4d;--link-hover: var(--accent);--lime: #e2ef9f;--mist: #e9ede2;--line: #c8d0c3;--focus: #315e4d;--serif: Playfair, Georgia, serif;--sans: "DM Sans", system-ui, sans-serif;--mono: ui-monospace, "Courier New", monospace}*,*:before,*:after{box-sizing:border-box}[hidden]{display:none!important}html{scroll-padding-top:1.5rem}body{margin:0;color:var(--ink);background:var(--paper);font:400 1rem/1.6 var(--sans)}a{color:inherit;text-underline-offset:.25em;text-decoration-skip-ink:none}p,h1,h2,h3,figure,dl,dd{margin:0}p+p{margin-top:.9em}h1,h2,h3{text-wrap:balance}h1,h2{font-family:var(--serif);font-weight:500}h2{font-size:clamp(2.5rem,5.1vw,4.7rem);letter-spacing:-.062em;line-height:1.03}a:focus-visible,button:focus-visible,summary:focus-visible,.evidence-panel:focus-visible{outline:3px solid var(--focus);outline-offset:4px}.frame{width:min(1240px,calc(100% - clamp(2rem,9vw,9rem)));margin-inline:auto}.skip{position:absolute;z-index:3;top:.5rem;left:.5rem;transform:translateY(-170%);background:var(--ink);color:var(--white);padding:.65rem 1rem}.skip:focus{transform:none}.eyebrow{font:700 .72rem/1.45 var(--mono);letter-spacing:.08em;text-transform:uppercase}.masthead{border-bottom:1px solid var(--line)}.header-inner{display:flex;min-height:76px;align-items:center;justify-content:space-between;gap:1rem 2rem}.brand{display:inline-flex;min-height:44px;align-items:center;gap:.65rem;font-weight:700;letter-spacing:-.025em;text-decoration:none}.brand img{display:block;flex:none}nav{display:flex;align-items:center;gap:clamp(.85rem,3vw,2.7rem)}nav a,.header-contact{display:inline-flex;min-height:44px;align-items:center;font-size:.91rem;font-weight:700;text-decoration:none}.header-contact{gap:.6rem;padding-inline:.85rem;border:1px solid var(--line);border-radius:4px}.hero{display:grid;grid-template-columns:minmax(0,1.38fr) minmax(0,1fr);align-items:center;gap:clamp(2rem,5vw,5.4rem);padding-block:clamp(4.4rem,8vw,8rem)}.identity{display:flex;align-items:center;gap:.65rem;color:var(--accent)}.identity-mark{width:.64rem;height:.64rem;flex:none;background:var(--accent);border-radius:50%}.hero h1{margin:1.15rem 0 1.5rem;font-size:clamp(2.7rem,5.7vw,5.5rem);letter-spacing:-.072em;line-height:.98;text-wrap:initial}.hero h1 em{color:var(--accent)}.hero-dek{max-width:34rem;color:var(--muted);font-size:clamp(1.09rem,1.6vw,1.32rem);line-height:1.52}.hero-location{margin-top:1.3rem;font-size:.86rem;color:var(--muted)}.actions{display:flex;flex-wrap:wrap;align-items:center;gap:.45rem 1.25rem;margin-top:1.5rem}.button{display:inline-flex;min-height:48px;gap:.9rem;align-items:center;justify-content:space-between;padding:.65rem 1rem;border-radius:4px;font-size:.92rem;font-weight:700;text-decoration:none}.button.dark{color:var(--white);background:var(--ink)}.button.light{color:var(--ink);background:var(--lime)}.text-link{display:inline-flex;align-items:center;min-height:44px;gap:.45rem;font-size:.91rem;font-weight:700}.text-link,.back-top{text-decoration:none}:is(.text-link,.back-top) .link-label{text-decoration:underline}.hero-art{min-width:0;background:var(--ink);color:var(--white);border-radius:7px;overflow:hidden;box-shadow:0 20px 55px -37px #10261d}.art-header,.hero-art figcaption{display:flex;justify-content:space-between;align-items:center;gap:.5rem;padding:.95rem 1.1rem}.art-header{color:var(--lime);border-bottom:1px solid #486358}.hero-art figcaption{border-top:1px solid #486358;font-size:.84rem}.hero-art figcaption span:last-child{color:var(--lime);font:700 .7rem var(--mono);white-space:nowrap}.art-field{position:relative;aspect-ratio:440 / 310;min-height:255px;isolation:isolate;background-color:#1c392e;background-image:radial-gradient(ellipse at 78% 56%,#436753,transparent 73%),repeating-linear-gradient(90deg,transparent 0 23px,#dcebc719 23px 24px),repeating-linear-gradient(0deg,transparent 0 23px,#dcebc719 23px 24px)}.art-sheet{position:absolute;display:flex;flex-direction:column;align-items:flex-start;padding:clamp(.78rem,1.5vw,1.25rem);border-radius:4px}.art-source{z-index:0;top:11%;left:10%;width:60%;gap:.47rem;color:var(--ink);background:#edf0dd;box-shadow:9px 9px #63826a}.art-source .eyebrow{margin-bottom:.4rem}.art-rule{height:1px;width:100%;background:#819580}.art-rule:nth-child(3){width:88%}.art-rule:nth-child(5){width:69%}.art-rule.highlight{height:.47rem;width:78%;background:#bfd86e}.art-locator{margin-top:.48rem;font:700 .65rem/1.45 var(--mono);letter-spacing:.06em}.art-claim{z-index:2;right:7%;bottom:12%;width:64%;color:var(--ink);background:var(--lime);box-shadow:8px 8px #10241c}.art-quote{margin-block:.55rem .25rem;font:500 clamp(1.24rem,2.65vw,2.35rem)/1.04 var(--serif);letter-spacing:-.045em}.art-dot{display:inline-block;width:.45rem;height:.45rem;background:var(--accent);border-radius:50%;vertical-align:.06rem}.art-connector{position:absolute;z-index:1;inset:0;width:100%;height:100%;color:var(--lime)}.art-cross{position:absolute;width:13px;height:13px;color:#9cb4a3}.art-cross:before,.art-cross:after{position:absolute;content:"";background:currentColor}.art-cross:before{inset:6px 0}.art-cross:after{inset:0 6px}.top-cross{right:7%;top:12%}.bottom-cross{left:6%;bottom:9%}.section{padding-block:clamp(2.7rem,6vw,5.7rem) clamp(4rem,8vw,7.7rem)}.section-label{display:flex;align-items:center;gap:.65rem;margin-bottom:clamp(1.8rem,3.8vw,3.2rem);color:var(--muted);font:700 .74rem/1.4 var(--mono);letter-spacing:.08em;text-transform:uppercase}.section-label>span{color:var(--accent)}.section-label:after{content:"";height:1px;flex:1;margin-left:.3rem;background:var(--line)}.engineering-layout,.scholar-layout{display:grid;grid-template-columns:minmax(0,.86fr) minmax(0,1.14fr);align-items:start;gap:clamp(2rem,7vw,7.3rem)}.section-intro>p{max-width:34rem;margin-top:1.05rem;color:var(--muted);font-size:1.08rem}.section-intro>p a{color:var(--accent);font-weight:700}.byline{margin-top:clamp(1.65rem,4vw,3rem);padding:1.15rem 1.3rem .85rem;border-left:3px solid var(--accent);background:var(--mist)}.byline .eyebrow{color:var(--accent)}.byline h3{margin-top:.45rem;font-size:1.21rem;line-height:1.25;letter-spacing:-.025em}.byline h3+p{margin-top:.5rem;color:var(--muted);font-size:.95rem}.byline .text-link{margin-top:.25rem}.career{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}.career li{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.55rem 1.3rem;padding:1.05rem 0;border-bottom:1px solid var(--line)}.career-domain{color:var(--accent)}.career h3{margin:.23rem 0 .15rem;font-size:clamp(1.22rem,2.2vw,1.58rem);letter-spacing:-.035em;line-height:1.12}.career-role{font-weight:600}.career-context{margin-top:.17rem;color:var(--muted);font-size:.91rem}.career-date{align-self:start;padding-top:.17rem;color:var(--muted);font:700 .75rem/1.45 var(--mono);font-variant-numeric:tabular-nums;white-space:nowrap}.research{--focus: var(--lime);--link-hover: var(--lime);color:var(--white);background:var(--ink)}.research .section-label{color:#d5e2d7}.research .section-label>span,.project-label,.project-facts dt,.research-method .eyebrow{color:var(--lime)}.research .section-label:after{background:#5d7669}.project-heading{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:1.2rem 2rem}.project-heading h2{margin:.6rem 0 .9rem;font-size:clamp(3.5rem,8vw,7.4rem)}.research-lead{max-width:34rem;font-size:clamp(1.16rem,2vw,1.38rem);line-height:1.45}.project-heading .actions{margin-top:0}.project-facts{display:grid;grid-template-columns:1fr 1.25fr 1.25fr;gap:.8rem 1.6rem;margin-block:2rem clamp(2.25rem,5vw,4.25rem);padding-block:.9rem;border-block:1px solid #5d7669}.project-facts dd{margin-top:.25rem;font-weight:600}.research-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.9fr);align-items:center;gap:clamp(2rem,7vw,6.7rem)}.research-copy h3,.implementation>h3{font:500 clamp(1.8rem,3.7vw,3.1rem)/1.1 var(--serif);letter-spacing:-.045em}.research-copy h3{margin:.55rem 0 1rem}.research-copy>p:not(.project-label){max-width:37rem;color:#dce7dc}.research-uses{display:grid;gap:.85rem;margin-bottom:1.05rem}.research-uses dt,.celf-model dt{font-weight:700}.research-uses dd,.celf-model dd{color:#dce7dc}.celf-overview{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.9fr);gap:1.4rem clamp(1.6rem,5vw,4.6rem);align-items:start;margin-top:clamp(2.5rem,5vw,4.3rem);padding:clamp(1.1rem,3.5vw,2.4rem);border:1px solid #5d7669;border-radius:4px;background:#203d32}.celf-overview .celf-name{margin-top:-.35rem;font-weight:700}.celf-overview .text-link{margin-top:.5rem}.celf-model>div{padding-block:.5rem;border-bottom:1px solid #5d7669}.celf-model>div:first-child{padding-top:0}.celf-model>div:last-child{padding-bottom:0;border-bottom:0}.implementation{margin-top:clamp(2.5rem,5vw,4.3rem)}.research-method{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.45rem 2.2rem;margin:1rem 0 0;padding:0;list-style:none}.research-method li{display:flex;flex-direction:column;align-items:start;border-top:1px solid #5d7669;padding-top:1rem}.research-method h4{margin:.38rem 0 .3rem;font-size:1.19rem;letter-spacing:-.025em;line-height:1.2;text-wrap:balance}.research-method p,.project-followup p{color:#dce7dc;font-size:.94rem}.research-method .text-link{margin-top:auto}.research-method p+.text-link{padding-top:.3rem}.project-followup{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.3rem 2rem;margin-top:2.2rem;padding:1rem clamp(1rem,3vw,1.6rem);border:1px solid #5d7669;border-radius:4px;background:#203d32}.project-followup h3{font-size:1.12rem;text-wrap:initial}.project-followup p{max-width:35rem;margin-top:.3rem}.project-followup .actions{margin-top:0}.evidence{--focus: #315e4d;align-self:center;min-width:0;padding:clamp(.9rem,2.5vw,1.7rem);color:var(--ink);background:var(--white);border-top:5px solid var(--lime);border-radius:6px}.evidence-top{padding-bottom:1rem}.evidence-top .eyebrow,.evidence-panel .eyebrow{color:var(--accent)}.evidence-top h3{margin-top:.32rem;font-size:1.45rem;line-height:1.15;letter-spacing:-.035em}.evidence-top h3+p{margin-top:.22rem;color:var(--muted);font-size:.92rem}.evidence-tabs{display:grid;grid-template-columns:.8fr 1.3fr .9fr;gap:.2rem;border-block:1px solid var(--line);padding-block:.3rem}.evidence-tabs button{min-height:44px;min-width:0;border:1px solid transparent;border-radius:3px;padding:.3rem .25rem;color:var(--ink);background:transparent;font:700 .83rem/1.25 var(--sans);cursor:pointer}.evidence-tabs button span{margin-right:.18rem;font:700 .66rem var(--mono)}.evidence-tabs button:hover{background:var(--mist)}.evidence-tabs button[aria-selected=true]{color:var(--white);background:var(--ink)}.evidence-panel{min-height:12rem;padding-top:1rem;font-size:.93rem}.evidence:not([data-enhanced]) .evidence-step{border-top:1px solid var(--line)}.evidence-step summary{min-height:44px;padding-block:.65rem;font-weight:700;cursor:pointer}.evidence:not([data-enhanced]) .evidence-panel{min-height:0;padding:0 0 1rem}.evidence-panel p{color:var(--muted)}.evidence-panel .evidence-quote{margin-top:.65rem;color:var(--ink);font:500 clamp(1.15rem,2vw,1.48rem)/1.33 var(--serif)}.evidence-panel dl{display:grid;grid-template-columns:auto minmax(0,1fr);gap:.44rem .8rem;margin-top:.72rem}.evidence-panel dt{font-weight:700}.dissertation{padding:clamp(1.12rem,3vw,1.75rem);border:1px solid var(--line);border-radius:4px;background:var(--mist)}.dissertation-meta{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.45rem 1rem;color:var(--accent)}.dissertation h3{margin:.55rem 0 .65rem;font:italic 500 clamp(1.7rem,3.4vw,2.8rem)/1.08 var(--serif);letter-spacing:-.045em}.dissertation h3+p,.education dd{color:var(--muted)}.dissertation .text-link{margin-top:.35rem}.education{margin-top:1.2rem}.education>div{display:grid;grid-template-columns:minmax(0,.78fr) minmax(0,1.22fr);gap:.4rem 1rem;padding:.75rem 0;border-bottom:1px solid var(--line)}.education dt{font-weight:700}.contact-inner{margin-bottom:clamp(2rem,5vw,4rem);padding:clamp(1.2rem,4.3vw,3.45rem);border-radius:6px;background:var(--lime)}.contact-inner .section-label{margin-bottom:1.1rem}.contact-inner .section-label:after{background:#a9b676}.contact-layout{display:flex;justify-content:space-between;align-items:end;gap:.5rem 2rem}.contact-layout p{max-width:31rem;margin-top:.65rem;color:var(--ink)}.contact .actions{flex:none}.footer-inner{display:grid;grid-template-columns:1fr auto 1fr;align-items:start;gap:.25rem 1.3rem;padding-block:.65rem 1.15rem;border-top:1px solid var(--line);font-size:.88rem}.footer-name{display:flex;min-height:44px;align-items:center;font-weight:700}.back-top{display:inline-flex;min-height:44px;align-items:center;gap:.35rem;justify-self:end}.source-notes summary{padding-block:.68rem;cursor:pointer}.source-notes ul{margin:0;padding-left:1.1rem}.source-notes li+li{margin-top:.25rem}@media(max-width:940px){.hero{gap:1.7rem}.contact-layout,.project-heading{display:block}.project-heading .actions{margin-top:1rem}}@media(max-width:730px){.header-inner{flex-wrap:wrap;gap:.4rem .8rem;padding-block:.5rem}.header-inner nav{order:3;width:100%;justify-content:space-between;border-top:1px solid var(--line)}.hero,.engineering-layout,.research-layout,.scholar-layout,.celf-overview{grid-template-columns:minmax(0,1fr)}.hero{padding-block:3.25rem 3.7rem;gap:1.8rem}.hero h1{font-size:clamp(2.7rem,9.6vw,4.7rem)}.hero-art{width:100%;max-width:32rem}.art-quote{font-size:clamp(1.45rem,5.5vw,2.35rem)}}@media(max-width:480px){.hero h1{font-size:clamp(2.12rem,9.6vw,3rem);letter-spacing:-.065em}.project-facts,.research-method,.education>div{grid-template-columns:1fr}.research-method{gap:1rem}.education>div{gap:.15rem}.footer-inner{grid-template-columns:1fr auto}.back-top{grid-column:1;justify-self:start}}@media(max-width:350px){.evidence-tabs button span{display:none}}@media(forced-colors:active){.evidence-tabs button[aria-selected=true]{border-color:ButtonText}.button,.evidence{border:1px solid ButtonText}}.click-feedback-layer{display:none;position:fixed;z-index:4;inset:0;overflow:hidden;pointer-events:none}.click-burst{position:absolute;width:58px;height:58px}.click-burst-outline{stroke:var(--ink);stroke-width:4}.click-burst-rays{stroke:var(--lime);stroke-width:2}.click-burst-center{fill:var(--lime);stroke:var(--ink);stroke-width:1.5}@media(hover:hover){:is(.brand,.masthead nav a,.text-link,.back-top,.section-intro a,.source-notes a):hover{color:var(--link-hover)}:is(.brand,.masthead nav a):hover .link-label{text-decoration:underline}:is(.text-link,.back-top):hover .link-label,:is(.section-intro,.source-notes) a:hover{text-decoration-thickness:.14em}.header-contact:hover{border-color:var(--accent);background:var(--mist)}.button.dark:hover{background:#25483b}.button.light:hover{background:#f3f9d1}}@media(prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}html:has(.skip:focus){scroll-behavior:auto}[data-hero-motion],[data-reveal][data-entered]{animation:rise-in .48s cubic-bezier(.2,.7,.2,1) both}.evidence[data-enhanced] .evidence-step:not([hidden]) .evidence-panel{animation:evidence-in .25s ease-out both}.click-feedback-layer{display:block}.click-burst{animation:click-stamp .43s cubic-bezier(.2,.65,.25,1) both}.art-source{animation:art-sheet-in .4s ease-out .06s backwards}.art-claim{animation:art-sheet-in .4s ease-out .25s backwards}.art-trace{stroke-dasharray:1;animation:draw-trace .46s cubic-bezier(.55,0,.35,1) .16s backwards}.art-trace-pin{animation:trace-pin-in .22s ease-out .28s backwards}.button,.header-contact,.evidence-tabs button{transition:background-color .18s ease-out,scale .15s ease-out}.button:active,.header-contact:active,.evidence-tabs button:active{scale:.97}}@media(prefers-reduced-motion:no-preference)and (hover:hover){.actions a>[aria-hidden=true],.header-contact>[aria-hidden=true]{transition:transform .18s ease-out}.actions a:hover>[aria-hidden=true],.header-contact:hover>[aria-hidden=true]{transform:translate(3px)}.hero-art .art-sheet{transition:transform .3s cubic-bezier(.2,.7,.2,1)}.hero-art:hover .art-source{transform:translate(-4px,-5px) rotate(-1deg)}.hero-art:hover .art-claim{transform:translate(4px,5px) rotate(1.5deg)}}@keyframes rise-in{0%{opacity:.87;transform:translateY(12px)}to{opacity:1;transform:none}}@keyframes evidence-in{0%{opacity:.87;transform:translateY(5px)}to{opacity:1;transform:none}}@keyframes click-stamp{0%{opacity:.85;transform:translate(-50%,-50%) scale(.3)}30%{opacity:1}to{opacity:0;transform:translate(-50%,-50%) scale(1.15)}}@keyframes art-sheet-in{0%{opacity:.68;translate:0 9px}to{opacity:1;translate:0 0}}@keyframes draw-trace{0%{stroke-dashoffset:1}to{stroke-dashoffset:0}}@keyframes trace-pin-in{0%{opacity:0}to{opacity:1}}
