:root{--navy:#081726;--ink:#152431;--paper:#f5f3ee;--teal:#14746f;--coral:#ffa08b;--muted:#59656b;--line:#d7ddd8}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;background:var(--paper);color:var(--ink);font-family:Arial,Helvetica,sans-serif;line-height:1.65}a{color:inherit;text-decoration:none}a:hover{text-decoration:underline;text-underline-offset:5px}button,input{font:inherit}button,a,input{touch-action:manipulation}button{cursor:pointer}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid #d97845;outline-offset:5px}.wrap{max-width:1320px;margin:auto;padding-left:60px;padding-right:60px}.header{display:flex;justify-content:space-between;align-items:center;background:var(--navy);color:#f5f5ee;padding:20px 4.2%;gap:25px}.wordmark{font-size:20px;font-weight:700;letter-spacing:.16em;line-height:1.2}.wordmark span{display:block;font-size:10px;font-weight:400;letter-spacing:.18em;margin-top:7px;color:#aec5d3}.header nav{display:flex;gap:34px;font-size:14px}.hero{background:#061222;color:white}.hero-image{width:100%;height:auto;display:block}.hero-foot{display:flex;align-items:center;justify-content:space-between;padding:21px 4.2%;border-top:1px solid #365060;gap:15px}.hero-foot span{font-size:11px;letter-spacing:.18em;color:#b4d2df}.hero-foot a{font-size:14px}.hero-foot a span{font-size:20px;margin-left:30px;color:var(--coral)}.eyebrow{font-size:11px;letter-spacing:.2em;font-weight:700;color:var(--teal);margin:0 0 25px}h2{font-size:clamp(33px,3.7vw,57px);line-height:1.12;font-weight:500;letter-spacing:-.04em;margin:0}h2 em{font-family:Georgia,'Times New Roman',serif;font-weight:400;color:var(--teal)}.about{display:grid;grid-template-columns:1fr 1fr;gap:70px;padding-top:100px;padding-bottom:100px}.about-copy p{margin:0 0 20px;font-size:16px;color:var(--muted)}.about-copy .lead{font-size:22px;line-height:1.5;color:var(--ink)}.text-links{display:flex;gap:23px;flex-wrap:wrap;padding-top:10px;font-size:13px;font-weight:700}.directions{padding:80px 0;background:#e8eeea}.section-head{display:flex;align-items:end;justify-content:space-between;gap:40px;margin-bottom:50px}.section-head>p{color:var(--muted);font-size:15px;margin:0}.direction-row{display:grid;grid-template-columns:65px 1fr 100px;gap:25px;padding:27px 0;border-top:1px solid #becbc4;align-items:start}.direction-row:last-child{border-bottom:1px solid #becbc4}.direction-row:hover{text-decoration:none}.direction-row:hover h3{color:var(--teal)}.direction-number{font-family:Georgia,serif;font-size:27px;color:var(--teal)}.direction-row h3{font-size:24px;letter-spacing:-.02em;font-weight:500;margin:0 0 6px}.direction-row p{font-size:14px;color:var(--muted);max-width:710px;margin:0}.direction-count{text-align:right;font-size:11px;white-space:nowrap;padding-top:8px}.direction-count span{margin-left:15px;font-size:20px}.work{padding-top:90px;padding-bottom:90px}.controls{border-top:1px solid var(--line);padding-top:25px}.filters{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:20px}.filters button{border:1px solid #bac8c0;background:transparent;color:var(--ink);padding:9px 14px;border-radius:2px;font-size:12px}.filters button.active{background:var(--navy);color:white;border-color:var(--navy)}.filters button:hover{border-color:var(--teal)}.search{display:flex;align-items:center;gap:20px;font-size:12px;color:var(--muted)}.search input{border:0;border-bottom:1px solid #a8b7ad;background:transparent;padding:10px 0;max-width:500px;width:100%;border-radius:0;color:var(--ink)}.results-status{font-size:12px;color:var(--muted);margin:25px 0 20px}.project-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px 25px}.project{background:#fff;display:flex;flex-direction:column;border:1px solid #e0e4df;transition:transform .2s}.project:hover{transform:translateY(-4px)}.project-image-link{display:block;overflow:hidden;background:var(--navy)}.project img{width:100%;height:auto;aspect-ratio:3/1;object-fit:cover;display:block}.project-body{padding:24px;display:flex;flex-direction:column;flex:1}.project-area{color:var(--teal);font-size:10px;letter-spacing:.06em;margin:0 0 12px;text-transform:uppercase}.project h3{font-size:22px;font-weight:500;line-height:1.25;margin:0 0 18px;letter-spacing:-.02em}.project-body>p:not(.project-area){font-size:14px;color:var(--muted);margin:0 0 23px}.project-links{display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;font-size:11px;font-weight:700;margin-top:auto;padding-top:18px;border-top:1px solid var(--line)}.project[hidden]{display:none}.more{display:flex;justify-content:center;align-items:center;gap:30px;margin-top:45px;flex-wrap:wrap;font-size:13px}.more button{background:var(--navy);color:white;border:0;padding:15px 25px}.more button span{margin-left:20px}.approach{background:var(--navy);color:#e5eef2;padding:85px 0}.approach .eyebrow{color:#a0d6cf}.approach-grid{display:grid;grid-template-columns:1fr 1fr;gap:80px}.approach h2{font-size:36px}.approach p:not(.eyebrow){margin:0 0 20px;color:#b5c6cf;font-size:15px}.connect{padding-top:90px;padding-bottom:90px}.connect h2{font-size:clamp(45px,6vw,86px);margin-bottom:30px}.connect>p:not(.eyebrow){color:var(--muted);font-size:17px}.connect-links{display:flex;gap:35px;flex-wrap:wrap;margin-top:30px;font-size:14px;font-weight:700}.footer{display:flex;justify-content:space-between;gap:20px;padding-top:25px;padding-bottom:25px;border-top:1px solid var(--line);font-size:11px;color:var(--muted)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip{position:fixed;top:-100px;left:15px;z-index:20;background:white;padding:10px}.skip:focus{top:10px}[hidden]{display:none!important}@media(max-width:900px){.wrap{padding-left:30px;padding-right:30px}.about,.approach-grid{gap:35px}.project-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.section-head{align-items:start}.header nav{gap:20px}.direction-row{grid-template-columns:40px 1fr 90px;gap:15px}.about-copy .lead{font-size:20px}.project h3{font-size:21px}}@media(max-width:600px){.header{padding:18px 22px;flex-wrap:wrap}.wordmark{font-size:17px}.header nav{width:100%;justify-content:space-between;font-size:12px;margin-top:8px}.hero-image{min-height:235px;object-fit:cover;object-position:58% center}.hero-foot{padding:16px 22px}.hero-foot>span{font-size:8px;max-width:180px}.hero-foot a{font-size:12px;white-space:nowrap}.hero-foot a span{margin-left:10px}.wrap{padding-left:22px;padding-right:22px}.about,.approach-grid{grid-template-columns:1fr;gap:30px}.about,.work,.connect{padding-top:60px;padding-bottom:60px}.directions,.approach{padding:60px 0}.section-head{display:block;margin-bottom:35px}.section-head>p{margin-top:25px;font-size:14px}.direction-row{grid-template-columns:30px 1fr;gap:15px}.direction-row h3{font-size:20px}.direction-count{grid-column:2;text-align:left;padding:0}.direction-row p{font-size:13px}.project-grid{grid-template-columns:1fr}.project h3{font-size:24px}.project-body{padding:24px}.filters button{font-size:11px;padding:8px 11px}.search{display:block}.search input{display:block}.footer{flex-wrap:wrap}.footer>span:nth-child(2){display:none}.connect-links{gap:20px}.approach h2{font-size:32px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.project{transition:none}.project:hover{transform:none}}
.mobile-hero-copy{display:none}@media(max-width:600px){.hero-image{object-position:right center}.mobile-hero-copy{display:block;padding:28px 22px 30px;background:var(--navy)}.mobile-hero-copy>p:first-child{font-size:10px;letter-spacing:.18em;color:#b5d8e0;margin:0 0 15px}.mobile-hero-copy h2{font-size:40px;color:var(--coral);margin:0 0 15px}.mobile-hero-copy>p:last-child{font-size:16px;line-height:1.5;color:#d7e4ed;margin:0}}

/* A stronger technical hierarchy for the research portfolio. */
:root{--display:"Bahnschrift","DIN Alternate","Arial",sans-serif;--code:"Cascadia Code","SFMono-Regular",Consolas,monospace}
.eyebrow{display:inline-flex;align-items:center;gap:14px;max-width:100%;font-family:var(--code);font-size:17px;font-weight:800;line-height:1.45;letter-spacing:.09em;color:#075e5b;padding:12px 18px 12px 15px;margin-bottom:28px;border-left:4px solid #168e88;border-top:1px solid #91b8ac;border-bottom:1px solid #91b8ac;background:linear-gradient(105deg,#d4e6df,rgba(212,230,223,.15));clip-path:polygon(0 0,calc(100% - 10px) 0,100% 10px,100% 100%,0 100%)}
.eyebrow::before{content:"";display:block;flex-shrink:0;width:9px;height:9px;background:#168e88;box-shadow:0 0 0 4px rgba(22,142,136,.11)}
h2{font-family:var(--display);font-weight:650;letter-spacing:-.025em}
h2 em{font-family:inherit;font-style:normal;font-weight:inherit}
.direction-number{font-family:var(--code);font-weight:700;font-size:25px}
.direction-row h3{font-family:var(--display);font-weight:650}
.project h3{font-family:var(--display);font-weight:650}
.project-area{font-family:var(--code);font-size:12px;font-weight:700;letter-spacing:.035em;line-height:1.5}
.filters button{font-size:13px;font-weight:650}
.header nav{font-weight:600}
.approach .eyebrow{color:#befff0;background:linear-gradient(105deg,#173b43,rgba(23,59,67,.2));border-color:#347679;border-left-color:#72d4c1}
.approach .eyebrow::before{background:#72d4c1;box-shadow:0 0 12px rgba(114,212,193,.5)}
@media(max-width:600px){.eyebrow{font-size:14px;letter-spacing:.065em;gap:12px;padding:11px 14px;margin-bottom:23px}.project-area{font-size:12px}.filters button{font-size:12px}.direction-row h3{font-weight:650}}

/* Two complementary voices: expressive curves and a rounded technical sans. */
@font-face{font-family:"Portfolio Serif";font-style:italic;font-weight:700;font-display:swap;src:url("./fonts/cormorant-italic-700.woff") format("woff")}
@font-face{font-family:"Portfolio Sans";font-style:normal;font-weight:400;font-display:swap;src:url("./fonts/outfit-400.woff") format("woff")}
@font-face{font-family:"Portfolio Sans";font-style:normal;font-weight:600;font-display:swap;src:url("./fonts/outfit-600.woff") format("woff")}
:root{--display:"Portfolio Sans",Arial,sans-serif;--script:"Portfolio Serif",Georgia,"Times New Roman",serif}
body{font-family:var(--display);font-weight:400}
h2{font-family:var(--script);font-style:italic;font-weight:700;font-size:clamp(46px,5.4vw,82px);line-height:1.02;letter-spacing:-.025em}
h2 em{font-family:inherit;font-style:inherit;font-weight:inherit}
.eyebrow{font-family:var(--display);font-style:normal;font-size:20px;font-weight:600;letter-spacing:.08em;padding:11px 17px 11px 14px;gap:13px;background:linear-gradient(105deg,rgba(199,225,215,.7),rgba(199,225,215,.1));border-top:0;border-bottom:0;border-left-width:3px}
.direction-number{font-family:var(--script);font-style:italic;font-size:35px;font-weight:700;line-height:1.1}
.direction-row h3,.project h3{font-family:var(--display);font-style:normal;font-weight:600}
.direction-row h3{font-size:26px}
.project h3{font-size:25px;line-height:1.23}
.project-area{font-family:var(--display);font-size:13px;font-weight:600;letter-spacing:.055em}
.header nav,.filters button,.project-links,.connect-links{font-family:var(--display);font-weight:600}
.header nav{font-size:16px}.wordmark{font-family:var(--display)}
.about-copy .lead{font-size:24px;line-height:1.5}
.approach h2{font-family:var(--script);font-style:italic;font-size:52px}
.connect h2{font-size:clamp(58px,7.5vw,105px)}
@media(max-width:900px){.project h3{font-size:24px}}
@media(max-width:600px){.eyebrow{font-family:var(--display);font-size:16px;letter-spacing:.06em;font-weight:600}.direction-number{font-size:31px}.direction-row h3{font-size:22px}.project h3{font-size:27px}.project-area{font-size:13px}.about-copy .lead{font-size:21px}.approach h2{font-size:43px}.mobile-hero-copy h2{font-family:var(--script);font-size:52px;line-height:1.02;font-style:italic;font-weight:700}.header nav{font-size:14px}}

/* Scientific atmosphere supports, rather than competes with, the reading surface. */
body{background:#dce9e6}
.about,.connect{max-width:none;padding-left:max(60px,calc((100% - 1200px)/2));padding-right:max(60px,calc((100% - 1200px)/2));background-color:#071b29;background-repeat:no-repeat;background-size:cover;background-position:center;color:#eff6f6}
.about{background-image:linear-gradient(90deg,rgba(5,22,34,.26),rgba(5,22,34,.89) 48%,rgba(5,22,34,.88) 84%,rgba(5,22,34,.35)),url("./assets/scientific-atmosphere.png")}
.about h2 em,.connect h2 em{color:#93e5d0}
.about-copy p{color:#d0e1e6}.about-copy .lead{color:#f3f9fb}.about .text-links{color:#adede3}
.about .eyebrow,.connect .eyebrow{color:#bef3e8;background:linear-gradient(105deg,rgba(27,77,80,.95),rgba(27,77,80,.3));border-left-color:#72d4c1}
.about .eyebrow::before,.connect .eyebrow::before{background:#72d4c1}
.directions{background:radial-gradient(ellipse at 95% 0%,#c0e1da 0%,transparent 58%),linear-gradient(150deg,#e4eeeb,#cfdeda)}
.direction-row{border-color:#a3bcb3}.direction-row:last-child{border-color:#a3bcb3}
.work{max-width:none;padding-left:max(60px,calc((100% - 1200px)/2));padding-right:max(60px,calc((100% - 1200px)/2));background-color:#e7eef0;background-image:linear-gradient(rgba(56,98,107,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(56,98,107,.035) 1px,transparent 1px),radial-gradient(ellipse at 100% 0%,#cfdfeb 0%,transparent 65%);background-size:96px 96px,96px 96px,100% 100%}
.project{background:#fcfdfc;border-color:#c5d4d2;box-shadow:0 5px 24px rgba(15,46,56,.04)}
.project-body>p:not(.project-area){color:#46575e}
.search{color:#41565d}.section-head>p,.results-status{color:#41565d}
.connect{background-image:linear-gradient(90deg,rgba(5,22,34,.4),rgba(5,22,34,.3) 45%,rgba(5,22,34,.2)),url("./assets/scientific-atmosphere.png");padding-top:100px;padding-bottom:110px}
.connect>p:not(.eyebrow){color:#d0e1e6;max-width:650px}.connect-links{color:#b8f1e7}
.footer{max-width:none;padding-left:max(60px,calc((100% - 1200px)/2));padding-right:max(60px,calc((100% - 1200px)/2));background:#061522;color:#c4d6de;border-top-color:#284250}
.approach{background:radial-gradient(ellipse at 95% 80%,#173b48 0%,#081726 70%)}
@media(max-width:900px){.about,.work,.connect,.footer{padding-left:30px;padding-right:30px}}
@media(max-width:600px){.about,.work,.connect,.footer{padding-left:22px;padding-right:22px}.about{background-image:linear-gradient(rgba(5,22,34,.86),rgba(5,22,34,.86)),url("./assets/scientific-atmosphere.png");background-position:75% center}.connect{background-image:linear-gradient(90deg,rgba(5,22,34,.9),rgba(5,22,34,.78)),url("./assets/scientific-atmosphere.png");background-position:72% center;padding-top:65px;padding-bottom:70px}.work{background-size:72px 72px,72px 72px,100% 100%}}
