@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;450;500;600;700&family=Space+Grotesk:wght@400;500;600;700&display=swap');
:root{color-scheme:dark;--bg:#141619;--panel:#1c1f22;--text:#f1f2ed;--muted:#afb3b5;--line:#363a3c;--accent:#c6f46a}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:30px}body{margin:0;background:var(--bg);color:var(--text);font-family:'DM Sans',sans-serif;font-size:16px;line-height:1.65}a{color:inherit;text-decoration:none}button,a,summary{-webkit-tap-highlight-color:transparent}a:focus-visible,summary:focus-visible{outline:2px solid var(--accent);outline-offset:6px}.wrap{max-width:1320px;margin:auto;padding-left:60px;padding-right:60px}header{max-width:1440px;margin:auto;padding:25px 60px;display:flex;align-items:center;gap:64px;border-bottom:1px solid var(--line)}.brand{font-family:'Space Grotesk',sans-serif;font-size:36px;font-weight:700;line-height:1}.brand span{color:var(--accent)}nav{display:flex;gap:32px;font-size:14px}nav a:hover,footer a:hover{color:var(--accent)}.header-note{margin-left:auto;color:var(--muted);font-size:12px;letter-spacing:.08em}.hero{padding-top:85px;padding-bottom:70px;display:grid;grid-template-columns:1.2fr 1fr;gap:66px;align-items:center}.eyebrow{font-size:12px;letter-spacing:.12em;font-weight:600;margin:0 0 23px;color:var(--muted)}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-family:'Space Grotesk',sans-serif;font-weight:500}h1{font-size:clamp(42px,5.2vw,72px);line-height:1.08;letter-spacing:-.055em;margin-bottom:28px}em{font-style:normal;color:var(--accent)}.intro{color:var(--muted);max-width:480px;margin-bottom:30px;font-size:17px}.primary{display:inline-flex;gap:48px;align-items:center;background:var(--accent);color:#151a10;font-weight:600;padding:13px 21px;border-radius:4px}.primary:hover{background:#d9ff93}.primary span{font-size:24px;line-height:1}.current{margin-top:36px;border-left:1px solid var(--line);padding-left:16px}.current>span{font-size:11px;letter-spacing:.12em;color:var(--muted)}.current p{font-size:13px;line-height:1.8;margin:6px 0 0}.hero-panel{background:#20251f;border:1px solid #394133;border-radius:5px;min-width:0;transform:translateY(7px)}.panel-top{display:flex;justify-content:space-between;gap:15px;padding:17px 23px;border-bottom:1px solid #394133;font-size:10px;letter-spacing:.06em;color:#b4bfa8}.plot-title{padding:35px 29px 0}.plot-title h2{font-size:35px;line-height:1.2;letter-spacing:-.04em;margin-bottom:18px}.plot-title p{font-size:14px;color:#b4bfa8}.spectrum{display:block;width:100%;padding:10px 20px 24px}.panel-bottom{display:flex;justify-content:space-between;align-items:center;padding:20px 25px;border-top:1px solid #394133}.panel-bottom strong{font-family:'Space Grotesk';font-size:34px;font-weight:400;color:var(--accent)}.panel-bottom strong span{font-size:12px;color:#b4bfa8;font-family:'DM Sans'}.panel-bottom>span{font-size:10px;color:#b4bfa8;text-align:right}.recognition{display:flex;gap:22px;align-items:center;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding-top:22px;padding-bottom:22px}.award-icon{font-size:39px;color:var(--accent)}.recognition .eyebrow{font-size:10px;margin:0;color:var(--accent)}.recognition p{margin:2px 0 0;font-size:17px}.award-year{margin-left:auto;color:var(--muted);font-size:14px}.work{padding-top:88px;padding-bottom:90px}.section-heading{display:flex;justify-content:space-between;gap:20px;align-items:end;margin-bottom:32px}.section-heading .eyebrow{margin-bottom:10px}h2{font-size:40px;line-height:1.2;letter-spacing:-.035em;margin-bottom:0}.section-heading>p{font-size:14px;color:var(--muted);margin:0}.featured{border:1px solid var(--line);background:var(--panel);display:grid;grid-template-columns:70px 1fr 240px;padding:32px;gap:24px;border-radius:5px}.project-index{font-family:'Space Grotesk';font-size:20px;color:var(--muted)}.project-index span{display:block;max-width:70px;font-family:'DM Sans';font-size:10px;line-height:1.6;margin-top:15px}.pill{display:inline-block;color:var(--accent);font-size:10px;letter-spacing:.06em;border:1px solid #53603f;border-radius:3px;padding:4px 8px;margin-bottom:20px}.featured h3{font-size:36px;line-height:1.17;letter-spacing:-.035em;margin-bottom:17px}.featured-content>p{max-width:490px;color:var(--muted);font-size:15px}.tags{display:flex;flex-wrap:wrap;gap:7px;margin:23px 0}.tags span{font-size:12px;padding:3px 8px;border:1px solid #404447;border-radius:3px;color:#c2c6c8}.award-block{border-left:1px solid var(--line);display:flex;flex-direction:column;justify-content:center;align-items:center}.award-block>span{font-size:12px;color:var(--muted);letter-spacing:.12em}.award-block strong{font-family:'Space Grotesk';font-size:135px;line-height:1.4;letter-spacing:-.08em;font-weight:500;color:var(--accent)}.award-block strong span{font-size:32px;vertical-align:super;letter-spacing:-.04em}.award-block p{font-size:10px;text-align:center;letter-spacing:.07em;color:var(--muted)}details{border-top:1px solid var(--line)}summary{list-style:none;padding:16px 0;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:14px;font-size:14px;font-weight:500}summary::-webkit-details-marker{display:none}summary span{font-size:21px;color:var(--accent)}details[open] summary span{transform:rotate(45deg)}.detail{color:var(--muted);font-size:14px}.detail strong{color:var(--text);font-weight:500}.project-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:20px}.project{border:1px solid var(--line);border-radius:5px;padding:25px;display:flex;flex-direction:column}.project-top{display:flex;justify-content:space-between;gap:8px;font-size:10px;letter-spacing:.04em;color:var(--muted);margin-bottom:35px}.project h3{font-size:25px;line-height:1.2;letter-spacing:-.025em;margin-bottom:16px}.project>p{color:var(--muted);font-size:14px}.metric{font-family:'Space Grotesk';font-size:35px;margin-top:auto;padding-top:22px;color:var(--accent)}.metric span{display:block;font-family:'DM Sans';font-size:12px;color:var(--muted)}.project .tags{min-height:60px;align-content:start}.project details{margin-bottom:-10px}.about{border-top:1px solid var(--line);padding-top:75px;padding-bottom:75px;display:grid;grid-template-columns:1fr 1.1fr;gap:80px}.about h2{font-size:36px;line-height:1.35}.about-copy>p{color:var(--muted);margin-bottom:22px}.about-copy>p:first-child{color:var(--text);font-size:20px;line-height:1.6}.skills{display:grid;grid-template-columns:1fr 1fr;gap:25px;border-top:1px solid var(--line);padding-top:25px;margin-top:30px}.skills h3{font-family:'DM Sans';font-size:11px;letter-spacing:.08em;color:var(--accent);margin-bottom:10px}.skills p{font-size:13px;color:var(--muted)}.experience{border-top:1px solid var(--line);padding-top:75px;padding-bottom:85px}.experience .eyebrow{margin-bottom:12px}.timeline{margin-top:35px}.entry{padding:25px 0;display:grid;grid-template-columns:210px 1fr 150px;gap:20px;border-bottom:1px solid var(--line)}.entry>span{font-size:12px;color:var(--muted);padding-top:3px}.entry h3{font-size:20px;margin-bottom:4px}.entry p{font-size:14px;color:var(--muted);margin:0}.entry-type{text-align:right}footer{display:flex;align-items:center;gap:26px;padding-top:28px;padding-bottom:28px;border-top:1px solid var(--line)}footer p{font-size:13px;margin:0}footer p span{color:var(--muted);font-size:12px}footer>a:last-child{margin-left:auto;font-size:13px}.skip{position:absolute;left:20px;top:-80px;padding:10px;background:var(--accent);color:#141619;z-index:20}.skip:focus{top:12px}@media(min-width:1500px){header{max-width:1320px}}@media(max-width:1000px){.wrap{padding-left:32px;padding-right:32px}header{padding:24px 32px;gap:35px}.header-note{display:none}.hero{gap:32px}.panel-top{flex-direction:column;gap:3px}.featured{grid-template-columns:40px 1fr 160px;padding:25px;gap:18px}.project-grid{gap:12px}.project{padding:20px}.about{gap:35px}.entry{grid-template-columns:170px 1fr 110px}}@media(max-width:720px){header{padding:22px 24px;justify-content:space-between;gap:20px}nav{gap:20px;font-size:13px}.brand{font-size:31px}.wrap{padding-left:24px;padding-right:24px}.hero{padding-top:50px;padding-bottom:42px;grid-template-columns:1fr;gap:36px}h1{font-size:52px}.hero-panel{transform:none}.panel-top{flex-direction:row}.plot-title{padding-top:25px}.plot-title h2{font-size:30px}.spectrum{max-height:230px}.current p{font-size:12px}.recognition{gap:15px}.recognition p{font-size:14px}.award-year{font-size:12px}.section-heading{display:block}.section-heading>p{margin-top:20px}.work{padding-top:55px;padding-bottom:55px}h2{font-size:34px}.featured{grid-template-columns:1fr;padding:24px;gap:18px}.project-index{font-size:13px;display:flex;gap:12px}.project-index span{display:inline;max-width:none;margin:0;line-height:2}.featured h3{font-size:34px}.award-block{display:none}.project-grid{grid-template-columns:1fr;gap:15px}.project{padding:25px}.project-top{margin-bottom:22px}.project h3{font-size:28px}.project .tags{min-height:0}.metric{padding-top:10px}.about{grid-template-columns:1fr;padding-top:50px;padding-bottom:45px;gap:28px}.about h2{font-size:32px}.about-copy>p:first-child{font-size:18px}.skills{gap:18px}.experience{padding-top:50px;padding-bottom:50px}.entry{grid-template-columns:1fr;gap:9px}.entry-type{display:none}.entry h3{font-size:19px}footer{gap:16px}footer>a:last-child{font-size:12px}footer p span{font-size:10px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
/* Project evidence and research */
figure{margin:0}img{max-width:100%;height:auto}figcaption{font-size:12px;line-height:1.5;color:var(--muted);margin-top:10px}.aircraft-feature{grid-template-columns:50px 1fr 1fr;gap:25px}.aircraft-visual{align-self:start;margin-top:10px}.aircraft-visual>img{display:block;width:100%;border-radius:4px}.award-inline{display:flex;align-items:center;gap:22px;border-top:1px solid var(--line);margin-top:24px;padding-top:16px}.award-inline strong{font-family:'Space Grotesk',sans-serif;font-size:55px;line-height:1.2;font-weight:500;color:var(--accent)}.award-inline span{font-size:12px;color:var(--muted)}.resource-links{display:flex;flex-wrap:wrap;gap:12px 22px;margin:20px 0}.resource-links a{color:var(--accent);font-size:14px;text-decoration:underline;text-underline-offset:4px}.resource-links a:hover{color:#e0ffab}.detail-figure{margin:20px 0}.detail-figure img{width:100%;display:block;border-radius:3px}.research-feature{margin:22px 0;display:grid;grid-template-columns:1fr 1fr;gap:48px;border:1px solid #44513a;border-radius:5px;padding:38px;background:linear-gradient(135deg,#20271e,#1c2021)}.research-feature h3{font-size:34px;line-height:1.2;letter-spacing:-.035em;margin-bottom:20px}.research-copy>p:not(.eyebrow):not(.role-label){color:var(--muted)}.role-label{color:var(--accent);font-size:14px;font-weight:500;margin-bottom:18px}.research-images{display:grid;align-content:start;gap:24px}.research-images img{width:100%;display:block;border-radius:4px}.project-grid{align-items:start}.project{height:100%}.card-image{margin:0 0 24px}.card-image img{width:100%;display:block;aspect-ratio:1.81;object-fit:contain;background:#23272b;border-radius:3px}.chart-image img{aspect-ratio:1.5;background:white}.logo-image img{background:#edf0f3;aspect-ratio:1.81}.portrait{max-width:270px;margin-top:32px}.portrait img{display:block;width:100%;border-radius:5px}.metric{font-size:30px}.project>p,.featured-content>p{font-size:16px}.project-top,.pill,.project-index span{font-size:12px}.project .tags{min-height:66px}.about-copy .skills p{font-size:14px}@media(max-width:1000px){.aircraft-feature{grid-template-columns:1fr 1fr}.aircraft-feature .project-index{grid-column:1/-1;display:flex;gap:15px;align-items:center}.aircraft-feature .project-index span{max-width:none;margin:0}.research-feature{gap:28px;padding:28px}.research-feature h3{font-size:29px}.project-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:720px){.aircraft-feature,.research-feature{grid-template-columns:1fr}.aircraft-visual{grid-row:2}.aircraft-feature .project-index{grid-row:1}.research-feature{padding:24px;gap:26px}.research-feature h3{font-size:30px}.research-images{grid-template-columns:1fr 1fr;gap:14px}.research-images img{aspect-ratio:1.4;object-fit:cover}.project-grid{grid-template-columns:1fr}.project .tags{min-height:0}.portrait{max-width:220px}.award-inline{margin-top:18px}.card-image img{max-height:280px}.project-top{font-size:12px}}@media(max-width:420px){.research-images{grid-template-columns:1fr}}
.video-figure{margin:20px 0}.video-figure video{display:block;width:100%;height:auto;max-height:480px;background:#080a0c;border-radius:4px}.youtube-player{display:block;width:100%;aspect-ratio:16/9;border:0;border-radius:4px;margin:8px 0 18px}.research-images .research-presentation img{max-height:440px;object-fit:contain;background:#171b18;aspect-ratio:auto}.research-images .research-presentation{grid-column:1/-1}.project .resource-links{margin-top:0}.video-figure+ .resource-links{margin-top:20px}@media(max-width:720px){.research-images .research-presentation img{max-height:420px;width:100%;object-fit:contain}.youtube-player{min-height:170px}}
/* Portfolio refinement */
[hidden]{display:none!important}button{font:inherit;cursor:pointer}button:focus-visible{outline:2px solid var(--accent);outline-offset:4px}.header-resume{margin-left:auto;font-size:14px;border:1px solid var(--line);border-radius:4px;padding:8px 14px}.header-resume:hover{border-color:var(--accent);color:var(--accent)}.hero-secondary{display:inline-block;margin-left:20px;font-size:14px;color:var(--muted);text-decoration:underline;text-underline-offset:5px}.project-tools{margin-bottom:30px;border-top:1px solid var(--line);padding-top:22px}.filters{display:flex;flex-wrap:wrap;gap:8px}.filters button{border:1px solid var(--line);background:transparent;color:var(--muted);font-size:14px;padding:9px 14px;border-radius:30px;transition:background .15s,color .15s}.filters button:hover{color:var(--text);border-color:#7f876f}.filters button[aria-pressed=true]{background:var(--accent);color:#151a10;border-color:var(--accent)}#project-count{font-size:13px;color:var(--muted);margin:12px 0 0}.project{transition:border-color .2s}.project:hover{border-color:#6a755e}.project-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}.project{padding:30px}.project h3{font-size:29px}.project-top{margin-bottom:24px}.project .card-image img{max-height:275px}.project .metric{padding-top:18px}.project .tags{min-height:0}.project details{margin-top:auto}.research-images{grid-template-columns:1fr 1fr;gap:18px}.research-images .research-presentation{grid-column:1/-1}.research-images img{aspect-ratio:1.6;object-fit:contain;background:#171b18}.research-feature{align-items:start}.personal-story{margin:28px 0}.personal-story h3{font-size:21px;margin:25px 0 12px}.personal-story p{color:var(--muted)}.experience>.entry{grid-template-columns:200px 1fr;gap:30px}.entry .organization{color:var(--accent);font-size:14px;margin:6px 0 10px}.entry .experience-description{font-size:16px;max-width:760px}.credentials,.leadership{border-top:1px solid var(--line);padding-top:65px;padding-bottom:65px}.credentials .eyebrow,.leadership .eyebrow{margin-bottom:12px}.credential-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-top:32px}.credential{padding:25px;background:var(--panel);border:1px solid var(--line);border-radius:5px}.credential h3{font-size:23px;line-height:1.3;margin:18px 0 12px}.credential p{font-size:15px;color:var(--muted);margin-bottom:18px}.credential>span:not(.credential-kind){display:block;font-size:14px;color:var(--muted)}.credential .credential-kind{font-size:12px;color:var(--accent);letter-spacing:.06em}.credential a{display:inline-block;font-size:14px;margin-top:20px;text-decoration:underline;text-underline-offset:4px}.leadership-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:60px;margin-top:32px}.leadership-grid h3{font-size:25px;line-height:1.3}.leadership-grid p:not(.role-label){color:var(--muted)}.contact{border-top:1px solid var(--line);padding-top:65px;padding-bottom:65px;display:grid;grid-template-columns:1fr 1fr;gap:45px;background:#1c2319}.contact p{color:var(--muted);margin:18px 0 0}.contact .eyebrow{margin:0 0 14px}.contact .primary{font-size:17px;gap:12px}.contact-actions{align-self:center}#copy-email,#close-viewer{border:1px solid var(--line);background:transparent;color:var(--text);padding:8px 13px;border-radius:4px;font-size:14px}#copy-status{font-size:13px;margin-left:14px;color:var(--accent)}.image-expand{cursor:zoom-in}.viewer-open{overflow:hidden}#image-viewer{color:var(--text);background:#15191b;border:1px solid #50594a;border-radius:8px;padding:20px;max-width:calc(100vw - 32px);width:1000px;max-height:92vh;overflow:auto}#image-viewer::backdrop{background:rgba(0,0,0,.86)}.viewer-toolbar{display:flex;justify-content:space-between;gap:20px;align-items:center;margin-bottom:15px}.viewer-toolbar p{margin:0;font-family:'Space Grotesk',sans-serif;font-size:19px}#viewer-image{display:block;width:100%;max-height:70vh;object-fit:contain}#viewer-caption{font-size:14px;color:var(--muted);margin:15px 0 0}#close-viewer{flex-shrink:0}.skills p{line-height:1.8}footer{margin-top:0}@media(max-width:1000px){header{gap:25px}nav{gap:20px}.credential-grid{grid-template-columns:1fr}.credential{display:block}.leadership-grid{gap:30px}.contact{grid-template-columns:1fr}.contact-actions .resource-links{margin-bottom:20px}}@media(max-width:720px){header{flex-wrap:wrap;gap:20px}header nav{order:3;width:100%;justify-content:space-between;gap:12px}.header-resume{font-size:13px}.hero-secondary{margin-left:15px}.project-grid{grid-template-columns:1fr}.project{padding:24px}.experience>.entry{grid-template-columns:1fr;gap:10px}.leadership-grid{grid-template-columns:1fr;gap:28px}.credentials,.leadership,.contact{padding-top:45px;padding-bottom:45px}.contact .primary{font-size:16px;padding:12px 15px}.research-images{grid-template-columns:1fr 1fr}.research-images .research-presentation img{max-height:380px}.filters button{font-size:13px;padding:9px 12px}.viewer-toolbar p{font-size:16px}h2{overflow-wrap:break-word}}@media(prefers-reduced-motion:reduce){*{transition:none!important}}
/* Personal introduction and contextual modal-analysis chart */
.hero{grid-template-columns:1.2fr .85fr;gap:80px;padding-top:65px;padding-bottom:65px}.hero h1{font-size:clamp(54px,6.2vw,86px);line-height:1.06;letter-spacing:-.05em;margin-bottom:26px}.hero .eyebrow{font-size:13px;letter-spacing:.1em}.hero .intro{max-width:540px}.hero-portrait{width:100%;max-width:405px;justify-self:end;border:1px solid #4c5544;border-radius:8px;overflow:hidden;background:var(--panel)}.hero-portrait>img{width:100%;height:auto;display:block;aspect-ratio:4/5;object-fit:cover}.hero-portrait figcaption{display:flex;flex-direction:column;gap:4px;margin:0;padding:17px 21px;border-top:1px solid #4c5544}.hero-portrait figcaption span:first-child{font-size:12px;letter-spacing:.12em;color:var(--accent)}.hero-portrait figcaption span:last-child{font-size:14px;color:var(--muted)}.modal-panel{margin:25px 0 12px;transform:none}.modal-panel .panel-top{font-size:12px;padding:15px;flex-wrap:wrap}.modal-panel .plot-title{padding:22px 18px 0}.modal-panel h4{font-family:'Space Grotesk',sans-serif;font-size:24px;font-weight:500;line-height:1.2;color:var(--text);margin:0 0 14px}.modal-panel .plot-title p{font-size:14px}.modal-panel .spectrum{width:100%;height:auto;display:block;padding:10px 12px 20px}.spectrum path{fill:none}.modal-panel .panel-bottom{padding:15px;gap:12px}.modal-panel .panel-bottom>span{font-size:12px}.modal-panel .panel-bottom strong{white-space:normal}@media(max-width:1000px){.hero{gap:40px;grid-template-columns:1.2fr .9fr}.hero h1{font-size:64px}.hero .intro{font-size:16px}}@media(max-width:720px){.hero{grid-template-columns:1fr;gap:32px;padding-top:42px;padding-bottom:42px}.hero h1{font-size:clamp(48px,12vw,66px)}.hero-portrait{max-width:340px;justify-self:center}.hero .eyebrow{font-size:12px}.hero .current{margin-top:28px}.modal-panel .panel-top{flex-direction:column;gap:6px}}
