:root{color:#f3f7fb;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#05070d;font-family:Avenir Next,Manrope,IBM Plex Sans,ui-sans-serif,system-ui,sans-serif}html{scroll-behavior:smooth;scroll-padding-top:92px}body{background:#05070d;min-width:320px;margin:0}button,input,textarea,select{font:inherit}::selection{background:#22d3ee47}@media (width<=720px){html{scroll-padding-top:74px}}#root{min-height:100svh}:root{--scroll-progress:0}*{box-sizing:border-box}a,button,input{outline-color:var(--cyan);outline-offset:3px}button,input{font:inherit}svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8px;width:1em;height:1em}.portfolio-site{--bg:#f5f2ea;--charcoal:#111318;--surface:#fffdf8;--surface-soft:#ece7dc;--surface-faint:#fffdf8c7;--line:#d5d0c4;--line-soft:#1113181f;--text:#111318;--muted:#535b64;--quiet:#7a827f;--cyan:#116c5d;--blue:#1e6b52;--amber:#b45f06;--violet:#7a003c;--mcmaster:#7a003c;--uab:#1e6b52;--uw:#c5050c;background:linear-gradient(90deg, #1113180b 1px, transparent 1px), linear-gradient(180deg, #11131809 1px, transparent 1px), var(--bg);min-height:100svh;color:var(--text);background-size:76px 76px,76px 76px,auto;font-family:Avenir Next,Manrope,IBM Plex Sans,ui-sans-serif,system-ui,sans-serif;overflow-x:clip}.portfolio-site:before{content:"";z-index:100;background:var(--charcoal);height:3px;transform:scaleX(var(--scroll-progress));transform-origin:0;pointer-events:none;position:fixed;inset:0 0 auto}.site-nav{z-index:90;border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#f5f2eaeb;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:18px;min-height:68px;padding:0 max(18px,50vw - 680px);display:grid;position:sticky;top:0}.brand,.nav-links a,.contact-links a,.hero-actions button,.hero-actions a,.filter-row button,.inline-action,.media-wall a,.archive-grid a,.link-ledger a,footer>a,footer a{color:inherit;text-decoration:none}.brand{align-items:center;gap:10px;min-width:152px;font-size:14px;font-weight:800;display:inline-flex}.brand-mark{border:1px solid var(--cyan);background:var(--charcoal);width:34px;height:34px;color:var(--cyan);place-items:center;font-family:SF Mono,JetBrains Mono,Consolas,monospace;font-size:11px;line-height:1;display:grid}.nav-links{scrollbar-width:none;justify-content:flex-end;min-width:0;display:flex;overflow-x:auto}.nav-links::-webkit-scrollbar{display:none}.nav-links a{min-height:38px;color:var(--muted);border-bottom:2px solid #0000;flex:none;padding:10px 13px;font-size:13px;font-weight:720}.nav-links a:hover,.nav-links a:focus-visible,.nav-links a.active{border-color:var(--cyan);color:var(--text)}main{min-width:0;display:grid}.page-section{width:min(1360px,100vw - 36px);min-width:0;margin-inline:auto;padding:88px 0;scroll-margin-top:92px}.hero-section{grid-template-columns:minmax(0,.86fr) minmax(440px,.74fr);align-items:start;gap:42px;min-height:calc(100svh - 68px);padding-top:112px;padding-bottom:52px;display:grid}.hero-copy,.hero-visual{min-width:0}.hero-copy h1,.section-header h2,.contact-section h2{color:var(--text);letter-spacing:0;margin:0;font-size:clamp(48px,8vw,104px);font-weight:880;line-height:.9}.hero-position{max-width:780px;color:var(--text);margin:26px 0 0;font-size:clamp(21px,2.5vw,36px);font-weight:780;line-height:1.08}.hero-summary,.section-header p,.contact-section p,.press-kit p{max-width:720px;color:var(--muted);margin:20px 0 0;font-size:17px;line-height:1.7}.credibility-row,.tag-list,.filter-row{flex-wrap:wrap;gap:8px;display:flex}.credibility-row{margin-top:28px}.credibility-row span,.tag-list span,.card-meta span{border:1px solid var(--line);color:var(--text);background:#fffdf8e0;font-family:SF Mono,JetBrains Mono,Consolas,monospace;font-size:12px;line-height:1.2}.credibility-row span{padding:9px 11px}.hero-actions{flex-wrap:wrap;gap:10px;margin-top:32px;display:flex}.hero-actions button,.hero-actions a,.filter-row button{border:1px solid var(--line);background:var(--surface);min-height:42px;color:var(--text);cursor:pointer;justify-content:center;align-items:center;font-size:14px;font-weight:780;display:inline-flex}.hero-actions button,.hero-actions a{padding:0 16px}.hero-actions button:first-child,.hero-actions a{border-color:var(--charcoal);background:var(--charcoal);color:#fffdf8}.hero-actions button:hover,.hero-actions button:focus-visible,.hero-actions a:hover,.hero-actions a:focus-visible,.filter-row button:hover,.filter-row button:focus-visible,.filter-row button.active{border-color:var(--amber);color:var(--text);background:#b45f061a}.hero-visual{grid-template-rows:minmax(0,1fr) auto;gap:14px;min-height:604px;display:grid}.image-plate{background:var(--surface-soft);min-width:0;margin:0;display:block;overflow:hidden}.image-plate img{object-fit:cover;filter:saturate(.96)contrast(1.02);width:100%;height:100%;display:block}.hero-portrait{border:1px solid var(--line);min-height:0}.hero-portrait img{object-position:64% 38%}.hero-proof-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.hero-proof-grid article{border:1px solid var(--line);background:var(--surface);grid-template-rows:132px auto;display:grid}.hero-proof-grid span{color:var(--muted);padding:10px 12px;font-family:SF Mono,JetBrains Mono,Consolas,monospace;font-size:11px;line-height:1.35}.timing-head span,.section-header p,.card-meta,.filter-row button,.impact-bar span,.link-ledger em,dt{font-family:SF Mono,JetBrains Mono,Consolas,monospace}.timing-head span{color:var(--cyan);font-size:11px}.timing-head strong{color:var(--text);margin-top:7px;font-size:17px;display:block}.telemetry-board svg{width:100%;height:auto;margin-top:8px;display:block}.trace{fill:none;stroke-width:2.6px}.trace-cyan{stroke:var(--cyan)}.trace-amber{stroke:var(--amber)}.trace-blue{stroke:var(--blue)}.impact-bar{border:1px solid var(--line);background:var(--surface);grid-template-columns:repeat(6,minmax(0,1fr));width:min(1360px,100vw - 36px);margin:0 auto;display:grid}.impact-bar div{border-right:1px solid var(--line);min-height:104px;padding:18px}.impact-bar div:last-child{border-right:0}.impact-bar strong{color:var(--cyan);font-family:SF Mono,JetBrains Mono,Consolas,monospace;font-size:clamp(24px,3vw,38px);line-height:1;display:block}.impact-bar span{color:var(--muted);margin-top:10px;font-size:12px;line-height:1.45;display:block}.section-header{gap:22px;margin-bottom:28px;display:grid}.section-header.split{grid-template-columns:minmax(0,.9fr) minmax(320px,.46fr);align-items:end}.section-header h2,.contact-section h2{font-size:clamp(40px,5.2vw,72px);line-height:.96}.section-header p{margin:0;font-size:13px}.filter-row{margin-bottom:22px}.filter-row button{color:var(--muted);padding:0 13px}.featured-research{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;display:grid}.research-card,.project-workbench,.press-kit,.timeline-module,.leadership-grid article,.contact-section,.link-archive,.telemetry-board{border:1px solid var(--line);background:var(--surface)}.research-card{grid-template-rows:210px 1fr;min-height:640px;display:grid}.research-card-body,.project-detail>div,.media-wall article>div,.archive-grid article>div,.leadership-grid article{padding:18px}.card-meta{flex-wrap:wrap;gap:7px;margin-bottom:14px;display:flex}.card-meta span,.tag-list span{padding:6px 8px}.research-card h3,.project-detail h3,.media-wall h3,.archive-grid h3,.leadership-grid h3,.timeline-detail h3,.press-kit h3{color:var(--text);margin:0;font-size:22px;line-height:1.12}.research-card dl,.project-detail dl{gap:12px;margin:18px 0 0;display:grid}dt,dd{margin:0}dt{color:var(--cyan);font-size:11px}dd,.media-wall p,.archive-grid p,.timeline-detail p,.leadership-grid li,.project-list em,.press-kit p{color:var(--muted);font-size:14px;line-height:1.52}dd{margin-top:5px}.card-footer{border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;margin-top:18px;padding-top:16px;display:flex}.card-footer strong{color:var(--amber);font-size:13px}.card-footer a,.inline-action,.media-wall a,.archive-grid a,footer a{color:var(--cyan);align-items:center;gap:8px;font-size:13px;font-weight:800;display:inline-flex}.archive-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-top:28px;display:grid}.archive-grid article{border:1px solid var(--line);background:var(--surface);grid-template-rows:158px 1fr;display:grid}.archive-grid span,.media-wall span{color:var(--amber);margin-bottom:10px;font-family:SF Mono,JetBrains Mono,Consolas,monospace;font-size:11px;display:block}.archive-grid p,.media-wall p{margin:10px 0 0}.archive-grid a,.media-wall a{margin-top:14px}.project-lab{display:grid}.project-workbench{grid-template-columns:minmax(280px,.34fr) minmax(0,.66fr);display:grid}.project-list{border-right:1px solid var(--line);align-content:start;display:grid}.project-list button{border:0;border-bottom:1px solid var(--line);min-height:72px;color:var(--text);cursor:pointer;text-align:left;background:0 0;grid-template-columns:40px minmax(0,1fr) auto;align-items:center;gap:10px;padding:0 14px;display:grid}.project-list button:hover,.project-list button:focus-visible,.project-list button.active{background:#22d3ee1a}.project-list span{color:var(--cyan);font-family:SF Mono,JetBrains Mono,Consolas,monospace;font-size:12px}.project-list strong{font-size:14px}.project-list em{font-style:normal}.project-detail{grid-template-columns:minmax(250px,.43fr) minmax(0,.57fr);min-height:500px;display:grid}.project-detail .image-plate{border-right:1px solid var(--line);min-height:100%}.project-detail .tag-list,.inline-action{margin-top:18px}.media-wall{grid-template-columns:repeat(3,minmax(0,1fr));gap:15px;display:grid}.media-wall article{border:1px solid var(--line);background:var(--surface);grid-template-rows:210px 1fr;display:grid}.press-kit{grid-template-columns:minmax(0,1fr) minmax(420px,.58fr);align-items:center;gap:22px;margin-top:20px;padding:22px;display:grid}.press-kit p{margin:10px 0 0}.press-actions{gap:12px;display:grid}.press-actions>a{border:1px solid var(--cyan);background:var(--cyan);color:#041018;justify-content:center;align-items:center;min-height:44px;font-size:14px;font-weight:800;text-decoration:none;display:inline-flex}.contact-links{border-top:1px solid var(--line);border-left:1px solid var(--line);grid-template-columns:repeat(auto-fit,minmax(135px,1fr));display:grid}.contact-links a{border-right:1px solid var(--line);border-bottom:1px solid var(--line);min-height:46px;color:var(--text);justify-content:space-between;align-items:center;padding:0 12px;font-size:13px;font-weight:760;display:inline-flex}.contact-links a:hover,.contact-links a:focus-visible,.link-ledger a:hover,.link-ledger a:focus-visible{color:var(--cyan);background:#22d3ee1c}.performance-grid{grid-template-columns:minmax(360px,.46fr) minmax(0,.54fr);gap:16px;display:grid}.telemetry-board{align-self:start;padding:18px}.timing-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:16px;padding-bottom:14px;display:flex}.grid-line{stroke:#a7b4c429;stroke-width:1px}.timing-stats{border-top:1px solid var(--line);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.timing-stats span{border-right:1px solid var(--line);min-height:44px;color:var(--muted);padding:13px 10px 0;font-family:SF Mono,JetBrains Mono,Consolas,monospace;font-size:11px}.timing-stats span:last-child{border-right:0}.leadership-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:14px;display:grid}.leadership-grid article{min-height:260px}.leadership-grid ul{gap:9px;margin:16px 0 0;padding-left:18px;display:grid}.timeline-module{grid-template-columns:minmax(280px,.36fr) minmax(0,.64fr);margin-top:22px;display:grid}.timeline-rail{border-right:1px solid var(--line);display:grid}.timeline-rail button{border:0;border-bottom:1px solid var(--line);min-height:70px;color:var(--text);cursor:pointer;text-align:left;background:0 0;grid-template-columns:78px minmax(0,1fr);align-items:center;gap:12px;padding:0 14px;display:grid}.timeline-rail button.active,.timeline-rail button:hover,.timeline-rail button:focus-visible{background:#22d3ee1a}.timeline-rail span,.timeline-detail span{color:var(--cyan);font-family:SF Mono,JetBrains Mono,Consolas,monospace;font-size:12px}.timeline-rail strong{font-size:14px;line-height:1.25}.timeline-detail{min-height:350px;padding:26px}.timeline-detail h3{max-width:680px;margin-top:12px;font-size:clamp(28px,4vw,56px)}.timeline-detail p{max-width:660px;margin:18px 0 0;font-size:17px}.timeline-detail.mcmaster{border-top:3px solid var(--mcmaster)}.timeline-detail.uab{border-top:3px solid var(--uab)}.timeline-detail.aapm{border-top:3px solid var(--cyan)}.timeline-detail.uw{border-top:3px solid var(--uw)}.timeline-detail.performance{border-top:3px solid var(--amber)}.link-archive{margin-top:22px}label{border-bottom:1px solid var(--line);gap:8px;padding:16px;display:grid}label span{color:var(--cyan);font-family:SF Mono,JetBrains Mono,Consolas,monospace;font-size:12px}input{border:1px solid var(--line);background:var(--surface);width:100%;min-height:44px;color:var(--text);padding:0 12px}input::placeholder{color:var(--quiet)}.link-ledger{display:grid}.link-ledger a{border-bottom:1px solid var(--line);grid-template-columns:52px minmax(0,.42fr) minmax(0,1fr) 28px;align-items:center;gap:12px;min-height:60px;padding:0 14px;display:grid}.link-ledger a>span{color:var(--cyan);font-family:SF Mono,JetBrains Mono,Consolas,monospace;font-size:12px}.link-ledger strong{min-width:0;color:var(--text);font-size:14px}.link-ledger em{min-width:0;color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-style:normal;overflow:hidden}.contact-section{gap:24px;margin-bottom:60px;padding:42px;display:grid}.contact-section h2{max-width:1020px}.contact-section footer{justify-content:flex-end;display:flex}@media (prefers-reduced-motion:no-preference){.trace{stroke-dasharray:740;stroke-dashoffset:740px;animation:3.2s forwards draw-trace}}@keyframes draw-trace{to{stroke-dashoffset:0}}@media (width<=1180px){.hero-section,.section-header.split,.project-workbench,.project-detail,.performance-grid,.press-kit,.timeline-module{grid-template-columns:1fr}.hero-visual{min-height:560px}.impact-bar{grid-template-columns:repeat(3,minmax(0,1fr))}.featured-research,.media-wall,.archive-grid,.leadership-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.project-list,.project-detail .image-plate,.timeline-rail{border-right:0;border-bottom:1px solid var(--line)}.project-detail .image-plate{min-height:360px}}@media (width<=760px){.portfolio-site{background-size:48px 48px,48px 48px,auto}.site-nav{grid-template-columns:54px minmax(0,1fr);gap:8px;min-height:58px}.brand{min-width:0}.brand>span:last-child{display:none}.nav-links{justify-content:flex-start}.nav-links a{min-height:36px;padding:9px 10px;font-size:12px}.page-section{width:min(100vw - 24px,1360px);padding:52px 0;scroll-margin-top:74px}.hero-section{gap:32px;min-height:auto;padding-top:34px}.hero-copy h1{overflow-wrap:anywhere;max-width:100%;font-size:clamp(42px,12.3vw,48px)}.hero-position{overflow-wrap:anywhere;max-width:320px;font-size:19px}.hero-summary{overflow-wrap:anywhere;max-width:330px;font-size:15px}.hero-actions{grid-template-columns:1fr;display:grid}.hero-actions button,.hero-actions a{min-width:0;padding-inline:10px}.hero-visual{min-height:auto}.hero-portrait{aspect-ratio:4/3}.hero-portrait img{object-position:74% 38%}.hero-proof-grid{grid-template-columns:1fr}.hero-proof-grid article{grid-template-rows:minmax(150px,40vw) auto}.impact-bar,.featured-research,.media-wall,.archive-grid,.leadership-grid{grid-template-columns:1fr}.impact-bar div{border-right:0;border-bottom:1px solid var(--line);min-height:82px}.impact-bar div:last-child{border-bottom:0}.section-header h2,.contact-section h2{font-size:34px}.research-card{min-height:0}.project-list button,.timeline-rail button{grid-template-columns:38px minmax(0,1fr)}.project-list em{grid-column:2}.timeline-rail button span{grid-row:span 2}.link-ledger a{grid-template-columns:38px minmax(0,1fr) 24px;gap:8px;padding:10px}.link-ledger em{white-space:normal;grid-column:2}.contact-section{padding:24px}.contact-section footer{justify-content:flex-start}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
