:root{--ink:#061b2b;--ink2:#0a293b;--paper:#ffffff;--muted:#bed8df;--lime:#ffb36b;--line:#254858;--blue:#136da8}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;background:var(--ink);color:var(--paper);font-family:Arial,Helvetica,sans-serif;font-size:16px;line-height:1.65}a{color:inherit;text-decoration:none}button{font:inherit;cursor:pointer}button,a{touch-action:manipulation}a:focus-visible,button:focus-visible{outline:3px solid var(--blue);outline-offset:5px}button:disabled{cursor:default}h1,h2,h3,p{margin:0}h1,h2,h3{line-height:1.08;font-weight:500;letter-spacing:-.05em}h2{font-size:clamp(2.5rem,4.5vw,4.4rem)}h3{font-size:1.6rem}em{font-family:Georgia,'Times New Roman',serif;font-weight:400;letter-spacing:-.06em}.wrap{width:min(1280px,calc(100% - 112px));margin-inline:auto}.section{padding:110px 0}.eyebrow{font-size:.78rem;font-weight:600;letter-spacing:.13em;line-height:1.8}.header{height:102px;padding:0 56px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);max-width:1600px;margin:auto}.brand{display:flex;align-items:center;gap:22px}.monogram{font-size:2rem;font-weight:700;letter-spacing:-.12em;line-height:1}.monogram span{color:var(--lime)}.brand-name{font-size:.76rem;letter-spacing:.1em}.header nav{display:flex;gap:36px;align-items:center;font-size:.88rem}.header nav a:hover,.text-link:hover{color:var(--lime)}.nav-connect{border:1px solid #7199ad;padding:9px 22px;border-radius:100px}.hero{display:grid;grid-template-columns:1.2fr 1fr;gap:8%;padding-block:78px 74px;align-items:center}.hero .eyebrow{color:var(--muted);letter-spacing:.1em}.hero .eyebrow span{margin:0 9px;color:var(--lime)}h1{font-size:clamp(3.4rem,6.2vw,6.1rem);letter-spacing:-.065em;margin:25px 0;line-height:.99}h1 em{font-size:.91em;color:var(--lime);line-height:1.12;display:block;margin-top:8px}.hero-intro{max-width:450px;color:var(--muted);font-size:1.06rem;line-height:1.7}.hero-actions{display:flex;align-items:center;gap:27px;margin-top:32px}.button{display:inline-flex;align-items:center;justify-content:center;border:1px solid transparent;padding:14px 26px;border-radius:100px;font-size:.9rem;font-weight:600;line-height:1.4;transition:background .2s,transform .2s}.button:hover{transform:translateY(-2px)}.lime{background:var(--lime);color:var(--ink)}.lime:hover{background:#ffc58e}.text-link{font-size:.88rem;border-bottom:1px solid #7199ad;padding-bottom:4px}.hero-foot{display:flex;gap:24px;font-size:.7rem;letter-spacing:.08em;color:#b4d5df;margin-top:48px}.portrait-group{align-self:center}.portrait-label{font-size:.75rem;letter-spacing:.14em;color:var(--muted);margin-bottom:13px}.portrait-frame{height:410px;position:relative;background:#0c4470;border-radius:3px;overflow:hidden;border-bottom:5px solid var(--lime)}.portrait-frame img{height:100%;width:100%;object-fit:cover;object-position:51% 42%;display:block}.portrait-caption{display:flex;justify-content:space-between;font-size:.77rem;margin-top:14px;color:var(--muted)}.portrait-caption span:first-child{color:var(--paper)}.portrait-note{padding:22px 0 0;font-size:.91rem;color:var(--muted)}.portrait-note strong{font-weight:400;color:var(--paper)}.discipline-band{border-block:1px solid var(--line);padding:24px 0;font-size:1rem;color:var(--muted)}.discipline-band .wrap{display:flex;justify-content:space-between}.discipline-band span::before{content:'+';color:var(--lime);margin-right:17px}.light{background:var(--paper);color:var(--ink)}.section-top{display:flex;justify-content:space-between;gap:50px;align-items:flex-end;margin-bottom:48px}.section-top .eyebrow,.about .eyebrow{color:#566472;margin-bottom:19px}.section-top p{max-width:350px;color:#586674;font-size:1rem}.work-toolbar{display:flex;justify-content:space-between;align-items:center;gap:20px;border-top:1px solid #ccd4dc;padding-top:28px;margin-bottom:28px}.filters{display:flex;flex-wrap:wrap;gap:8px}.filters button{border:1px solid #c7d0d8;border-radius:100px;padding:9px 17px;font-size:.85rem;color:#4d5a66;background:transparent}.filters button.active{background:var(--ink);border-color:var(--ink);color:white}.filters button:hover{border-color:var(--ink)}.filters button span{font-size:.75rem;margin-left:8px;color:var(--lime)}.project-count{font-size:.79rem;color:#566472;white-space:nowrap}.project-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:23px}.project-card{background:white;border:1px solid #d9e0e5;display:flex;flex-direction:column;min-width:0;border-radius:6px;overflow:hidden}.project-card.featured{grid-column:span 2}.project-cover{height:178px;background:#e5eaf0;padding:24px;position:relative;overflow:hidden}.cover-language{background:#0c4470;color:white;height:245px}.cover-research{height:245px;background:#d9edac}.cover-robot{background:#0a293b;color:white}.cover-fraud{background:#e2e8fa}.cover-concierge{background:#cddfed}.cover-audio{background:#d7e3d9}.cover-qa{background:#e3ddf2}.cover-llm{background:#212b38;color:white}.cover-database{background:#ede4d8}.cover-eyebrow{font-size:.75rem;letter-spacing:.09em;position:absolute;left:24px;top:21px;opacity:.8}.cover-main{height:100%;display:flex;align-items:center;justify-content:center;gap:13px}.code-line{font-family:'Courier New',monospace;font-size:clamp(1.2rem,2vw,1.6rem);letter-spacing:-.055em;white-space:nowrap}.cover-main .big-number{font-size:4.8rem;letter-spacing:-.08em;font-weight:600;line-height:1}.cover-main .number-label{font-size:.88rem;line-height:1.5}.language-example{display:grid;grid-template-columns:1fr 1fr;gap:30px;align-items:start;width:100%;margin-top:33px}.language-example small{color:#b4d5df;display:block;font-size:.75rem;margin-bottom:13px}.language-example p{font-size:1.35rem;line-height:1.35;letter-spacing:-.03em}.language-example p:last-child{color:var(--lime)}.project-body{padding:24px;flex:1;display:flex;flex-direction:column}.project-meta{display:flex;justify-content:space-between;gap:10px;font-size:.7rem;letter-spacing:.06em;color:#63727f;margin-bottom:16px}.project-meta .status{letter-spacing:0;background:#edf1f5;border-radius:4px;padding:1px 7px;font-size:.75rem}.project-card h3{font-size:1.6rem;letter-spacing:-.035em;margin-bottom:13px}.project-card p.description{font-size:.91rem;line-height:1.65;color:#556370}.tags{display:flex;flex-wrap:wrap;gap:7px;margin-top:20px}.tags span{font-size:.75rem;padding:3px 8px;border:1px solid #dce2e7;border-radius:4px;color:#5b6874}.project-more{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:25px;padding-top:17px;border-top:1px solid #e0e6eb}.project-more button{border:0;padding:0;background:none;color:var(--ink);font-size:.88rem;font-weight:600}.project-more button:hover{color:var(--blue)}.project-no{font-family:'Courier New',monospace;font-size:.77rem;color:#7b8791}.research-layout{display:grid;grid-template-columns:1.3fr 1fr;gap:11%;align-items:center}.research .eyebrow{color:var(--lime);margin-bottom:22px}.research h2{font-size:clamp(2.5rem,4vw,3.75rem)}.large-copy{color:var(--muted);margin:28px 0;font-size:1.04rem;max-width:520px}.outline{border-color:#657480;background:transparent;color:var(--paper)}.outline:hover{background:var(--ink2)}.research-status{display:block;font-size:.77rem;color:var(--muted);margin-top:17px}.research-visual{background:var(--ink2);border:1px solid #356473;padding:27px;border-radius:7px}.visual-title{font-size:.75rem;letter-spacing:.08em;color:var(--lime)}.visual-title span{display:block;font-size:.75rem;color:var(--muted);margin-top:8px;letter-spacing:.06em}.purchase{border-bottom:1px solid #356473;padding:29px 0;color:var(--muted);font-size:.88rem}.purchase strong{display:block;color:var(--paper);font-size:2.85rem;font-weight:500;letter-spacing:-.04em;line-height:1.3}.account-row{display:flex;justify-content:space-between;gap:16px;padding:23px 0;border-bottom:1px solid #356473}.account-row p{font-size:.8rem;color:var(--muted);margin-top:4px}.account-row strong{color:var(--lime);font-size:2rem;line-height:1.2;text-align:right;font-weight:500}.account-row small{display:block;color:var(--muted);font-size:.75rem;margin-top:6px}.visual-foot{font-size:.79rem;color:var(--muted);padding-top:20px}.about-grid{display:grid;grid-template-columns:1.15fr 1fr;gap:9%}.about h2{font-size:clamp(2.5rem,4vw,3.8rem)}.about-copy p{color:#53616d;margin-bottom:19px}.skill-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:28px;border-block:1px solid #cbd3db;margin-top:57px;padding:35px 0}.skill-no{font-family:'Courier New',monospace;font-size:.85rem;color:#62727f;display:block;margin-bottom:24px}.skill-grid h3{font-size:1.3rem;letter-spacing:-.025em;margin-bottom:17px}.skill-grid p{font-size:.88rem;color:#53616d;line-height:1.9}.coursework{display:grid;grid-template-columns:1fr 1.8fr;gap:50px;padding-top:45px}.coursework h3{font-size:1.5rem}.coursework .eyebrow{margin-bottom:10px}.course-list{display:flex;flex-wrap:wrap;gap:9px}.course-list span{border-bottom:1px solid #ccd5dc;padding:3px 0;margin-right:12px;color:#53616d;font-size:.83rem}.experience .section-top p{color:var(--muted)}.experience .eyebrow{color:var(--lime)}.experience-list{border-top:1px solid var(--line)}.experience-list article{display:grid;grid-template-columns:1fr 2fr;gap:60px;border-bottom:1px solid var(--line);padding:34px 0}.experience-type{font-size:.75rem;letter-spacing:.06em;color:var(--paper)}.experience-type span{display:block;font-size:.83rem;color:var(--muted);letter-spacing:0;margin-top:12px}.experience-list h3{font-size:1.6rem;letter-spacing:-.03em;margin-bottom:13px}.experience-list p{color:var(--muted);max-width:680px;font-size:.96rem}.connect{background:var(--ink2);border-block:1px solid var(--line)}.connect-layout{display:flex;align-items:center;justify-content:space-between;gap:60px}.connect .eyebrow{color:var(--lime);margin-bottom:22px}.connect h2{font-size:clamp(2.5rem,4vw,3.8rem)}.connect p{color:var(--muted);max-width:550px;margin-top:24px}.connect .button{white-space:nowrap}footer{display:flex;align-items:center;justify-content:space-between;gap:22px;padding-block:35px;color:var(--muted);font-size:.76rem}footer .monogram{color:var(--paper)}dialog{background:var(--paper);color:var(--ink);border:0;border-radius:10px;width:min(730px,calc(100% - 32px));padding:33px;max-height:86vh;box-shadow:0 30px 100px #0008}dialog::backdrop{background:#041725cc;backdrop-filter:blur(5px)}.dialog-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px;color:#60717f}.close-dialog{width:42px;height:42px;border:1px solid #c4ced7;border-radius:50%;background:transparent;font-size:1.7rem;line-height:1}.dialog-title{font-size:2.55rem;margin:15px 0 22px;letter-spacing:-.04em}.dialog-summary{font-size:1.07rem;line-height:1.7;color:#52606d}.dialog-section{margin-top:26px}.dialog-section h3{font-size:1.1rem;letter-spacing:0;margin-bottom:10px}.dialog-section p,.dialog-section li{color:#52606d;font-size:.95rem;line-height:1.7}.dialog-section ul{padding-left:21px}.dialog-section li+li{margin-top:8px}.dialog-done{margin-top:30px;background:var(--ink);color:white}.skip{position:absolute;top:-100px;left:10px;padding:10px;background:var(--lime);color:var(--ink);z-index:5}.skip:focus{top:10px}[hidden]{display:none!important}@media(min-width:1450px){.hero{gap:12%;padding-block:100px}.portrait-frame{height:465px}}@media(max-width:1050px){.wrap{width:calc(100% - 64px)}.header{padding-inline:32px}.hero{gap:5%}.hero .eyebrow{font-size:.75rem}.portrait-frame{height:360px}h1{font-size:5.7vw}.hero-foot{gap:12px;font-size:.75rem}.project-grid{grid-template-columns:repeat(2,1fr)}.project-card.featured{grid-column:span 1}.cover-language{height:245px}.language-example{grid-template-columns:1fr;gap:14px;margin-top:16px}.language-example small{margin-bottom:5px}.language-example p{font-size:1.1rem}.research-layout{gap:7%}.skill-grid{grid-template-columns:repeat(2,1fr)}.about-grid{gap:6%}.section{padding:80px 0}.portrait-caption{font-size:.75rem}.experience-list article{gap:40px}.connect-layout{gap:30px}}@media(max-width:700px){.wrap{width:calc(100% - 40px)}.header{height:80px;padding:0 20px}.brand-name{display:none}.header nav{gap:18px;font-size:.8rem}.nav-connect{padding:6px 12px}.header nav a:nth-child(3){display:none}.hero{grid-template-columns:1fr;gap:48px;padding:48px 0}.hero .eyebrow{font-size:.75rem}h1{font-size:clamp(3.2rem,12vw,5.1rem);max-width:600px}.hero-intro{font-size:1rem}.hero-foot{font-size:.75rem;gap:20px;margin-top:35px}.portrait-group{max-width:440px;width:100%;margin-inline:auto}.portrait-frame{height:360px}.portrait-note{font-size:.87rem}.portrait-caption{font-size:.75rem}.discipline-band .wrap{flex-wrap:wrap;gap:12px;font-size:.86rem}.discipline-band span::before{margin-right:8px}.section{padding:65px 0}.section-top{display:block;margin-bottom:32px}.section-top p{margin-top:24px;max-width:none}.section-top h2{font-size:2.9rem}.work-toolbar{align-items:flex-start}.filters{gap:7px}.filters button{font-size:.78rem;padding:7px 12px}.project-count{display:none}.project-grid{grid-template-columns:1fr;gap:20px}.project-cover{height:180px}.project-card.featured .project-cover{height:210px}.language-example{grid-template-columns:1fr 1fr;gap:19px}.language-example p{font-size:1.15rem}.project-body{padding:23px}.research-layout,.about-grid{grid-template-columns:1fr;gap:38px}.research h2,.about h2,.connect h2{font-size:2.7rem}.research-visual{max-width:480px;width:100%}.about-copy p:last-child{margin-bottom:0}.skill-grid{gap:24px;margin-top:35px}.skill-grid h3{font-size:1.17rem}.skill-grid p{font-size:.82rem}.skill-no{margin-bottom:16px}.coursework{grid-template-columns:1fr;gap:24px;padding-top:35px}.experience-list article{grid-template-columns:1fr;gap:18px;padding:27px 0}.experience-type span{display:inline;margin-left:13px}.experience-type br{display:none}.experience-list h3{font-size:1.4rem}.connect-layout{display:block}.connect .button{margin-top:30px}footer{flex-wrap:wrap;font-size:.7rem}footer span:last-child{width:100%;margin-top:0}dialog{padding:24px}.dialog-title{font-size:2.1rem}.code-line{font-size:1.4rem}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.button{transition:none}}
/* Concise selected-project portfolio */
.project-cover,.cover-language,.cover-robot,.cover-soil{height:210px}.cover-soil{background:#e1f3f7}.language-example{margin-top:25px;gap:16px}.language-example p{font-size:1.35rem}.code-line{font-size:1.25rem}.project-meta{flex-wrap:wrap}.project-body .tags{margin-bottom:auto}.work{padding-bottom:80px}.about{border-top:1px solid #cbd3db}.investigation-note{border-left:3px solid var(--blue);padding:8px 0 4px 19px;margin-top:25px}.investigation-note .eyebrow{display:block;font-size:.75rem;margin:0 0 6px}.investigation-note p{margin:0}.education-list{display:grid;gap:24px}.education-list h3{font-size:1.18rem;letter-spacing:-.02em;line-height:1.4}.education-list p{font-size:.88rem;color:#53616d;margin-top:5px}@media(max-width:1050px) and (min-width:701px){.project-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.project-body{padding:19px}.project-card h3{font-size:1.3rem}.project-cover{padding:19px}.cover-eyebrow{left:19px;right:19px;font-size:.75rem}.cover-main .big-number{font-size:3.9rem}.number-label{font-size:.8rem}.language-example{grid-template-columns:1fr 1fr;gap:12px}.language-example p{font-size:1.12rem}.code-line{font-size:.98rem}}@media(max-width:700px){.project-grid{grid-template-columns:1fr}.project-cover{height:200px}.code-line{font-size:1.3rem}.work{padding-bottom:55px}}

/* Current research and wider project context */
.hero h1 em{color:var(--lime)}.portrait-frame{border-bottom-width:7px}.cover-robot{background:#ffb36b;color:var(--ink)}.cover-soil{background:#e1f3f7;color:var(--ink)}.cover-language{background:#0c4470}.language-example small{color:#bfd9e6}.project-card{border-color:#d1e2e8}.tags span{border-color:#d1e2e8}.light .eyebrow{color:#3a687b}.current-research{background:#0a293b;border-top:1px solid var(--line)}.research-heading{display:grid;grid-template-columns:1.2fr 1fr;gap:9%;align-items:start}.current-research .eyebrow{color:var(--lime);margin-bottom:22px}.current-research h2{font-size:clamp(2.6rem,4vw,3.8rem)}.research-copy p{color:var(--muted);font-size:1rem;margin-bottom:17px}.research-progress{display:inline-block;font-size:.82rem;border:1px solid #4b8190;border-radius:100px;padding:6px 13px;color:#e6f5f7;margin-top:5px}.comparison-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;margin-top:50px;border-block:1px solid #2c5968}.comparison-grid article{padding:30px 26px;border-right:1px solid #2c5968}.comparison-grid article:first-child{padding-left:0}.comparison-grid article:last-child{border-right:0;padding-right:0}.comparison-grid article>span{font-size:.75rem;letter-spacing:.08em;color:var(--lime)}.comparison-grid h3{font-size:1.38rem;letter-spacing:-.03em;line-height:1.3;margin:18px 0 13px}.comparison-grid p{font-size:.9rem;line-height:1.7;color:var(--muted)}.research-footer{display:grid;grid-template-columns:1fr 1.3fr;gap:60px;margin-top:26px;font-size:.85rem;line-height:1.7}.research-footer>span{color:#e6f5f7}.research-footer p{color:var(--muted)}.learning-row{border-top:1px solid #d1e2e8;margin-top:30px;padding-top:28px;display:grid;grid-template-columns:1fr 1.8fr;gap:50px}.learning-row>div{display:flex;gap:10px 18px;flex-wrap:wrap}.learning-row>div span{font-size:.82rem;color:#365a68;border-bottom:1px solid #d1e2e8;padding:3px 0}.exploration-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:35px}.exploration-grid article{padding-top:26px;border-top:2px solid #136da8}.exploration-grid .eyebrow{font-size:.75rem;line-height:1.7}.exploration-grid h3{font-size:1.5rem;margin:17px 0;letter-spacing:-.03em}.exploration-grid p{font-size:.95rem;line-height:1.75;color:#3d5b69}.dialog-section h3{color:#136da8;font-size:1.1rem}.dialog-summary{color:#3d5b69}.dialog-section p{color:#3d5b69}.header nav{gap:27px}.project-grid{align-items:stretch}.project-body{gap:0}.project-body p.description{font-size:.94rem;line-height:1.7}@media(max-width:1050px){.header nav{gap:19px}.brand-name{display:none}.research-heading{gap:6%}.comparison-grid h3{font-size:1.23rem}.project-body p.description{font-size:.88rem}.exploration-grid{gap:24px}}@media(max-width:700px){.header nav{gap:15px}.header nav a:nth-child(3),.header nav a:nth-child(4){display:none}.research-heading{grid-template-columns:1fr;gap:25px}.current-research h2{font-size:2.6rem}.comparison-grid{grid-template-columns:1fr;margin-top:28px}.comparison-grid article,.comparison-grid article:first-child,.comparison-grid article:last-child{border-right:0;border-bottom:1px solid #2c5968;padding:23px 0}.comparison-grid article:last-child{border-bottom:0}.comparison-grid h3{font-size:1.3rem;margin:10px 0}.comparison-grid h3 br{display:none}.research-footer{grid-template-columns:1fr;gap:13px}.learning-row{grid-template-columns:1fr;gap:14px}.exploration-grid{grid-template-columns:1fr;gap:30px}.exploration-grid h3{margin:13px 0}.project-body p.description{font-size:.95rem}}
/* Five projects: three featured builds followed by automation and circuit work. */
.project-cover.cover-parking{background:#e5f3f5;color:var(--ink)}.pic-label{font-size:3.7rem;font-weight:600;letter-spacing:-.07em;line-height:1}.project-cover.cover-booklight{padding:12px;background:#eef7f9}.cover-booklight img{width:100%;height:100%;object-fit:contain;display:block}.project-figure{margin:27px 0 0}.project-figure img{width:100%;height:auto;display:block;border:1px solid #d1e2e8;border-radius:5px}.project-figure figcaption{font-size:.8rem;color:#365a68;margin-top:8px}@media(min-width:701px){.project-grid{grid-template-columns:repeat(6,minmax(0,1fr))}.project-card{grid-column:span 2}.project-grid[data-filter="all"] .project-parking,.project-grid[data-filter="all"] .project-booklight{grid-column:span 3}.project-grid[data-filter="embedded"] .project-card{grid-column:span 3}.project-grid[data-filter="ai"] .project-card{grid-column:span 3}.project-grid[data-filter="all"] .project-parking .project-cover,.project-grid[data-filter="all"] .project-booklight .project-cover{height:235px}}@media(max-width:700px){.project-card{grid-column:auto}.project-cover.cover-booklight{height:200px}}
/* Completed logistic regression lab and a balanced six-entry grid. */
.project-cover.cover-logisticlab{background:#f7f7f2;padding:13px}.cover-logisticlab img{display:block;object-fit:contain;height:100%;width:100%}@media(min-width:701px){.project-grid[data-filter="all"] .project-card,.project-grid[data-filter="all"] .project-parking,.project-grid[data-filter="all"] .project-booklight{grid-column:span 2}.project-grid[data-filter="all"] .project-card .project-cover{height:210px}.project-grid[data-filter="ai"] .project-card{grid-column:span 3}}
/* Project images and labelled phase galleries. */
.project-cover.cover-language,.project-cover.cover-robot,.project-cover.cover-soil,.project-cover.cover-parking{padding:12px;background:#edf7f8}
.project-cover>img{display:block;width:100%;height:100%;object-fit:contain}
.project-cover.cover-language{padding:0;background:#202e80}
.phase-covers{display:grid;grid-template-columns:1fr 1fr;height:100%;gap:2px}
.phase-covers>div{min-width:0;position:relative;overflow:hidden;display:flex;align-items:center;background:#202e80}
.phase-covers img{width:100%;height:100%;display:block;object-fit:contain;padding-bottom:30px}
.phase-covers>div:last-child{background:#eee9e0}
.phase-covers span{position:absolute;bottom:0;left:0;right:0;background:#202e80;color:#fff;padding:8px 10px;font-size:.64rem;letter-spacing:.04em;line-height:1.5}
.project-gallery{margin-top:28px;display:grid;gap:25px}
.project-gallery .project-figure{margin:0}
.gallery-label{font-size:1rem;letter-spacing:0;color:#136da8;margin-bottom:12px;line-height:1.4}
.project-figure>a{display:block;background:#edf7f8;border-radius:6px;overflow:hidden}
.project-figure img{width:100%;max-height:480px;object-fit:contain;background:#fff}
.project-figure figcaption{line-height:1.6}
.project-figure figcaption a{display:inline-block;margin-left:7px;color:#136da8;text-decoration:underline;text-underline-offset:3px}
.phase-covers>div:last-child{background:#202e80}
.phase-covers span{font-size:.75rem;letter-spacing:0;padding:7px 8px}
.project-cover.cover-parking{padding:0;background:#061b2b}
.cover-parking>img{object-fit:cover}
.project-video video{display:block;width:100%;height:auto;max-height:480px;background:#061b2b;border-radius:6px}
.project-cover.cover-booklight{padding:0;background:#edf7f8}
.booklight-cover-pair{display:grid;grid-template-columns:1fr 1.4fr;gap:10px;height:100%;align-items:center}
.booklight-cover-pair img{display:block;width:100%;height:100%;object-fit:contain;background:white}
.booklight-cover-pair img:first-child{object-fit:cover}
.booklight-gallery{grid-template-columns:repeat(2,minmax(0,1fr));gap:26px 18px}
.booklight-gallery .project-figure>a{height:250px;display:flex;align-items:center}
.booklight-gallery .project-figure img{height:100%;object-fit:contain}
.booklight-gallery .project-figure:last-child{grid-column:1/-1}
.booklight-gallery .project-figure:last-child>a{height:400px}
.analysis-downloads{margin-top:28px;padding:22px 0;border-block:1px solid #d1e2e8}
.analysis-downloads h3{font-size:1rem;letter-spacing:0;line-height:1.4;margin-bottom:13px;color:#136da8}
.analysis-downloads>div{display:flex;flex-wrap:wrap;gap:10px 18px}
.analysis-downloads a{font-size:.875rem;text-decoration:underline;text-underline-offset:3px;color:#136da8}
@media(max-width:600px){.booklight-gallery{grid-template-columns:1fr}.booklight-gallery .project-figure>a{height:auto}.booklight-gallery .project-figure img{height:auto;max-height:480px}.booklight-gallery .project-figure:last-child>a{height:auto}}
/* A personal closing signature. */
.signature-quote{margin:0}
.connect .signature-quote h2{font-size:clamp(2.5rem,4.8vw,4.5rem);line-height:1.12;max-width:840px}
.signature-quote h2 em{color:var(--lime)}
.connect p.signature-name{font-size:.875rem;letter-spacing:.11em;text-transform:uppercase;margin-top:22px;color:var(--paper);display:flex;align-items:center;gap:13px}
.signature-name::before{content:"";display:block;width:36px;height:2px;background:var(--lime);flex-shrink:0}
/* Follow the reading order in the navigation and section spacing. */
.about{border-top:0}
.about .skill-grid{margin-bottom:0}
.additional-work .coursework{margin-top:42px}
.experience{border-top:1px solid var(--line)}
@media(max-width:700px){.header nav{flex-wrap:wrap;justify-content:flex-end;column-gap:13px;row-gap:7px;max-width:275px}.header nav a:nth-child(3),.header nav a:nth-child(4){display:inline-flex}.header{gap:15px}}
/* Blue fades into orange around the personal introduction. */
body{background:linear-gradient(125deg,#082c55 0%,#243047 48%,#713719 100%)}
.header{background:transparent;border-color:#ffffff26}
.about-opening{background:linear-gradient(115deg,#0b3565 0%,#243245 55%,#743815 100%)}
.about-opening .hero{grid-template-columns:1.2fr 1fr;gap:8%;padding-block:68px}
.about-opening h1{margin:21px 0 25px}
.about-opening h1 em,.signature-quote h2 em{color:#ffb56f;background:linear-gradient(100deg,#78bfff,#ffb56f);background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent}
.hero-intro{max-width:540px;font-size:1.06rem;color:#e4f0f4}
.opening-copy{max-width:540px;margin-top:19px;color:#bfdce3;font-size:1rem;line-height:1.7}
.opening-copy p+p{margin-top:15px}
.about-opening .hero-foot{font-size:.75rem;gap:20px;margin-top:30px;color:#bedce5;flex-wrap:wrap}
.about-skills{padding:45px 0 50px;border-top:1px solid #b9dce3}
.about-skills .skill-grid{margin:0}
.portrait-frame{background:#105070;border-bottom-color:#ffb36b}
.portrait-note,.portrait-caption,.portrait-label{color:#c1dfe5}
.discipline-band{background:#082e43;border-color:#ffffff26}
.current-research{background:linear-gradient(115deg,#0a3053,#633b26);border-color:#356a73}
.connect{background:linear-gradient(115deg,#0b3565,#723812)}
.light h2 em{color:#096c99}
.exploration-grid article{border-image:linear-gradient(90deg,#177cbb,#e18d37) 1}
@media(max-width:700px){.about-opening .hero{grid-template-columns:1fr;gap:35px;padding:45px 0}.about-skills{padding:35px 0 40px}.opening-copy{font-size:1rem}.about-opening .hero-foot{gap:10px 18px}}
.skills-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:35px}
.skills-heading h2{font-size:clamp(2rem,3.1vw,2.75rem);letter-spacing:-.04em;line-height:1.15}
.skills-heading p{max-width:420px;color:#3d5b69;font-size:1rem;line-height:1.65}
.about-skills .skill-grid{margin-top:28px}
@media(max-width:700px){.skills-heading{display:block}.skills-heading p{margin-top:13px;max-width:none}.about-skills .skill-grid{margin-top:24px}}
:root{--accent-gradient:linear-gradient(100deg,#78bfff,#ffb56f)}
.button.lime,.button.lime:hover,.dialog-done,.filters button.active,.nav-connect{background:var(--accent-gradient);color:var(--ink);border-color:transparent}
.button.lime:hover,.dialog-done:hover{box-shadow:0 6px 22px #071e3a33}
.header nav .nav-connect:hover{color:var(--ink)}
.filters button.active span{color:var(--ink)}
.experience h2 em,.current-research h2 em{color:#ffb56f;background:var(--accent-gradient);background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent}
.light h2 em{color:#0d5894;background:linear-gradient(100deg,#0d5894,#b65013);background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent}
.signature-name::before{background:var(--accent-gradient)}
.project-award{display:flex;align-items:center;gap:11px;margin:0 0 18px;line-height:1.45}
.silver-badge{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:42px;height:42px;border-radius:50%;background:linear-gradient(135deg,#fdfefe 0%,#c1c8cf 43%,#edf0f3 67%,#a7b0ba 100%);border:1px solid #b7c0c9;box-shadow:inset 0 1px 2px #fff;color:#23394c;font-size:1.4rem;font-weight:700;line-height:1}
.project-award strong{display:block;font-size:.875rem;color:#23394c;font-weight:600}
.project-award small{display:block;font-size:.75rem;color:#506474;line-height:1.55;margin-top:2px}
.experience{background:linear-gradient(115deg,#0b3565,#723812)}

.project-figure .rotate-left{position:relative;aspect-ratio:2048/1569;overflow:hidden;background:white}
.project-figure .rotate-left img{position:absolute;left:50%;top:50%;width:76.611328%;height:auto;max-height:none;transform:translate(-50%,-50%) rotate(-90deg);border:0;border-radius:0}
