@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;450;500;550;600;650;700&family=Instrument+Serif:ital@0;1&display=swap');
:root{--bg:#f8f9fc;--ink:#172132;--muted:#586273;--blue:#253be8;--line:#dce0e8;--serif:'Instrument Serif',Georgia,serif;--sans:'DM Sans',Arial,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:35px}body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.6}a{color:inherit;text-decoration:none}a:focus-visible{outline:3px solid var(--blue);outline-offset:6px}::selection{background:#ccd2ff}.wrap{max-width:1248px;width:calc(100% - 112px);margin-inline:auto}.header{height:112px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:14px;font-weight:650;font-size:17px}.monogram{background:#fff;border:1px solid #111;box-shadow:0 2px 4px rgb(0 0 0 / 14%);color:#111;width:41px;height:41px;border-radius:50%;display:block;object-fit:cover;flex-shrink:0}.header nav{display:flex;gap:34px;font-size:15px}.header nav a{position:relative}.header nav a:hover,.header nav a[aria-current]{color:var(--blue)}.skip{position:absolute;top:-90px;background:var(--blue);color:white;padding:12px;z-index:10}.skip:focus{top:10px}.hero{padding-top:53px;padding-bottom:68px}.eyebrow{font-size:12px;font-weight:600;letter-spacing:1.6px;line-height:1.6}.hero>.eyebrow{display:flex;justify-content:space-between}.edition{color:var(--muted)}h1,h2,h3,p{margin:0}h1{font-weight:500;font-size:clamp(64px,7.85vw,112px);line-height:1.04;letter-spacing:-6px}h1 em{font-family:var(--serif);font-weight:400;color:var(--blue);letter-spacing:-3px}.hero h1{margin:36px 0 31px}.hero-bottom{display:flex;align-items:end;justify-content:space-between;gap:30px}.hero-bottom p{font-size:18px;color:var(--muted);line-height:1.65}.button{display:inline-flex;align-items:center;justify-content:center;background:var(--blue);color:white;border-radius:5px;font-size:15px;font-weight:550;padding:14px 24px;min-height:50px;white-space:nowrap;transition:background .2s,transform .2s}.button:hover{background:#172cc6;transform:translateY(-2px)}.projects{padding-top:32px;border-top:1px solid var(--line);padding-bottom:80px}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:25px}h2{font-weight:500;font-size:28px;letter-spacing:-.8px}.count{font-size:12px;vertical-align:super;margin-left:10px;color:var(--muted);letter-spacing:0}.project-grid{display:grid;grid-template-columns:1fr 1fr;gap:34px}.project-image{aspect-ratio:1.82;overflow:hidden;position:relative;border-radius:7px;background:#172132}.project-image img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .5s}.project:hover img{transform:scale(1.035)}.project-image:after{content:'';position:absolute;inset:0;background:linear-gradient(transparent 50%,#080a126e)}.image-label{position:absolute;bottom:20px;left:22px;z-index:1;font-size:12px;font-weight:600;letter-spacing:1.4px;color:white;text-shadow:0 1px 8px black}.project-number{position:absolute;right:17px;top:17px;border:1px solid #ffffff90;background:#12172899;color:white;z-index:1;padding:3px 8px;border-radius:4px;font-size:12px}.project-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:20px}.project h3{font-size:25px;font-weight:550;letter-spacing:-.8px}.pill{font-size:12px;border:1px solid #cfd5df;border-radius:20px;padding:3px 10px;white-space:nowrap;color:#4d5667}.project p{color:var(--muted);margin-top:9px;max-width:470px;line-height:1.7}.domain{display:flex;justify-content:space-between;gap:12px;border-top:1px solid var(--line);margin-top:23px;padding-top:14px;font-size:14px;font-weight:500}.external-note{font-size:13px;color:var(--muted)}.project:hover .domain{color:var(--blue)}.journal{padding-block:43px 66px;border-top:1px solid var(--line)}.blue{color:var(--blue)}.journal h2{font-size:37px;margin-top:10px;letter-spacing:-1.1px}.text-link{font-size:14px;border-bottom:1px solid var(--ink);padding-bottom:3px}.text-link:hover{color:var(--blue);border-color:var(--blue)}.post-row{display:grid;grid-template-columns:170px 1fr auto;gap:30px;align-items:center;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:30px 0}.post-date{display:flex;flex-direction:column;font-size:14px;gap:4px}.post-date>span{font-size:12px;color:var(--muted)}.post-info h3{font-size:25px;font-weight:500;letter-spacing:-.5px}.post-info p{font-size:15px;color:var(--muted);margin-top:5px}.read-label{font-size:14px;color:var(--blue)}.post-row:hover h3{color:var(--blue)}.about{border-top:1px solid var(--line);padding:52px 0 75px;display:grid;grid-template-columns:1fr 1fr;gap:34px}.about h2{font-size:48px;letter-spacing:-2px;margin-top:15px}.about-copy>p:first-child{font-size:23px;line-height:1.55;letter-spacing:-.4px}.about-copy>p+p{color:var(--muted);margin-top:18px}.signature{display:block;font-family:var(--serif);font-size:33px;font-style:italic;margin-top:23px}.footer{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line);padding:28px 0 35px;font-size:12px;color:var(--muted);gap:20px}.footer .brand{font-size:14px;color:var(--ink);display:block}.footer>a:last-child{font-size:13px}.page-intro{padding-block:70px 65px}.page-intro h1{margin:25px 0}.page-intro p{font-size:20px;color:var(--muted)}.page-intro .button{margin-top:30px}.blog-end{padding:65px 0 120px;font-family:var(--serif);font-style:italic;color:var(--muted);font-size:30px}.article{max-width:950px;padding-top:45px}.article-header{padding-top:52px}.article-header>.eyebrow{display:block;margin-bottom:22px}.article h1{font-size:clamp(60px,7vw,94px);letter-spacing:-4px}.article-meta{display:flex;gap:25px;font-size:13px;color:var(--muted);padding:28px 0;border-bottom:1px solid var(--line)}.article-body{max-width:680px;margin:45px auto 70px;font-size:18px;line-height:1.85}.article-body p{margin-bottom:24px}.article-body .lead{font-size:25px;line-height:1.6;letter-spacing:-.4px}.article-body a{color:var(--blue);text-decoration:underline;text-underline-offset:3px}.article-body h2{margin:38px 0 16px}.article-end{border-top:1px solid var(--line);padding:30px 0 65px;display:flex;align-items:center;justify-content:space-between}.article-end>span{color:var(--muted)}
@media(min-width:1600px){.hero{padding-block:70px 80px}}@media(max-width:1050px){.wrap{width:calc(100% - 64px)}h1{letter-spacing:-4px}.project-heading{align-items:start;flex-direction:column;gap:8px}.project-grid{gap:26px}.edition{display:none}.post-row{grid-template-columns:140px 1fr auto;gap:20px}.project h3{font-size:24px}}
@media(max-width:650px){.wrap{width:calc(100% - 40px)}.header{height:84px}.brand{font-size:14px;gap:9px}.monogram{width:34px;height:34px;font-size:18px}.header nav{gap:18px;font-size:14px}.hero{padding-block:38px 42px}.eyebrow{font-size:11px;letter-spacing:1.3px}.hero h1{font-size:clamp(49px,10.5vw,68px);letter-spacing:-2.7px;line-height:1.1;margin:28px 0 24px}h1 em{letter-spacing:-1.6px}.hero-bottom{align-items:start;flex-direction:column;gap:24px}.hero-bottom p{font-size:16px}.section-heading>.eyebrow{display:none}h2{font-size:24px}.project-grid{grid-template-columns:1fr;gap:36px}.project-heading{flex-direction:row;align-items:center}.project h3{font-size:22px}.project-image{aspect-ratio:1.65}.projects{padding-bottom:45px;padding-top:24px}.project p{font-size:16px}.journal{padding-block:34px 44px}.journal h2{font-size:29px}.post-row{grid-template-columns:1fr;gap:13px;padding-block:23px}.post-date{flex-direction:row;gap:16px}.post-info h3{font-size:23px}.read-label{margin-top:4px}.about{grid-template-columns:1fr;gap:22px;padding:36px 0 44px}.about h2{font-size:40px;margin-top:8px}.about-copy>p:first-child{font-size:21px}.footer{flex-wrap:wrap;gap:20px;font-size:12px}.footer .brand{flex-basis:100%}.footer>a:last-child{margin-left:auto}.page-intro{padding-block:45px}.page-intro h1{font-size:64px;letter-spacing:-3px}.page-intro p{font-size:18px}.blog-end{font-size:26px;padding:45px 0 70px}.article{padding-top:30px}.article-header{padding-top:35px}.article h1{font-size:58px;letter-spacing:-3px}.article-meta{gap:12px;flex-wrap:wrap;font-size:12px}.article-body{font-size:17px;margin-top:30px}.article-body .lead{font-size:22px}.article-end{padding-bottom:40px}.pill{font-size:11px;padding:3px 8px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important}}

/* Project artwork and Planestro feature */
.hero-bottom p{max-width:760px}.project-image{aspect-ratio:2048/853}.hurricane img{object-fit:contain}.hurricane:after{display:none}.hurricane .project-number{top:auto;bottom:12px;right:12px}.planestro-feature{grid-column:1/-1;display:grid;grid-template-columns:230px 1fr;gap:34px;border:1px solid var(--line);border-radius:7px;overflow:hidden;margin-top:8px;background:#fff}.planestro-art{background:#14171b;display:grid;place-items:center;position:relative;min-height:230px}.planestro-art img{width:150px;height:150px;object-fit:contain}.planestro-copy{padding:25px 30px 25px 0;align-self:center}.planestro-copy .project-heading{margin-top:0;flex-direction:row;align-items:center}.planestro-copy p{max-width:760px}.planestro-copy .domain{margin-top:18px}.hero h1{margin-block:36px}.hero-bottom{align-items:center}
@media(max-width:650px){.hero-bottom{align-items:start}.project-image{aspect-ratio:2048/853}.planestro-feature{grid-template-columns:1fr;gap:0}.planestro-art{min-height:160px}.planestro-art img{width:115px;height:115px}.planestro-copy{padding:22px}.planestro-copy .domain{flex-direction:column;gap:5px}.hero h1{font-size:clamp(49px,11.7vw,72px)}}

/* Fill the Lake Monomonac card, preserving the top and cropping below. */
.lake{background:#100b29}.lake img{object-fit:cover;object-position:center top}.lake:after{display:none}

/* A personal introduction paired with the full family photograph. */
.hero-personal{padding-block:48px 60px}.hero-layout{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);align-items:center;gap:64px}.hero-copy{min-width:0}.hero-personal h1{font-size:clamp(64px,7.3vw,96px);line-height:1.05;letter-spacing:-4px;margin:26px 0 28px}.hero-personal .hero-bottom{display:flex;flex-direction:column;align-items:flex-start;gap:28px}.hero-personal .hero-bottom p{max-width:570px;font-size:18px;line-height:1.75}.hero-photo{margin:0;min-width:0;max-width:390px;justify-self:end;border-radius:9px;overflow:hidden;border:1px solid var(--line);box-shadow:0 8px 26px rgb(23 33 50 / 8%)}.hero-photo img{display:block;width:100%;height:auto}
@media(max-width:1050px){.hero-layout{gap:38px;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr)}.hero-personal h1{font-size:clamp(59px,7.2vw,80px);letter-spacing:-3px}.hero-personal .hero-bottom p{font-size:17px}}
@media(max-width:720px){.hero-personal{padding-block:36px 44px}.hero-layout{grid-template-columns:1fr;gap:32px}.hero-personal h1{font-size:clamp(56px,11.7vw,80px);margin:22px 0}.hero-personal .hero-bottom p{font-size:16px}.hero-personal .hero-bottom{gap:22px}.hero-photo{max-width:440px;width:100%;justify-self:center}}

/* Three consistent project rows, stacked from top to bottom. */
.project-grid{grid-template-columns:1fr;gap:24px}
.project-grid>.project{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.25fr);gap:0;grid-column:auto;margin:0;border:1px solid var(--line);border-radius:7px;overflow:hidden;background:#fff}
.project-grid .project-image{aspect-ratio:auto;height:100%;min-height:220px;border-radius:0}
.project-grid .planestro-art{min-height:220px}
.project-grid .project-copy{padding:28px 32px;align-self:center;min-width:0}
.project-grid .project-heading{margin-top:0;flex-direction:row;align-items:center;flex-wrap:wrap}
.project-grid .project-copy p{max-width:none}
.project-grid .project-copy .domain{margin-top:18px}
@media(max-width:760px){.project-grid>.project{grid-template-columns:1fr}.project-grid .project-image{aspect-ratio:2048/853;height:auto;min-height:0}.project-grid .planestro-art{min-height:180px}.project-grid .project-copy{padding:22px}.project-grid .project-heading{gap:10px}}
@media(max-width:380px){.project-grid .domain{flex-wrap:wrap}}

/* A personal career story with selected, readable highlights. */
.career-about{display:block;padding-block:60px 72px}
.about-intro{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:72px;align-items:start}
.career-about h2{font-size:clamp(44px,5.2vw,66px);line-height:1.08;letter-spacing:-2px;margin-top:20px}
.career-about h2 em{font-family:var(--serif);font-weight:400;color:var(--blue)}
.career-caption{display:block;color:var(--muted);max-width:250px;margin-top:24px;font-size:15px}
.career-about .about-copy>p:first-child{font-size:27px;line-height:1.4;letter-spacing:-.6px}
.career-about .about-copy>p+p{line-height:1.8}
.career-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:54px;padding-bottom:18px}
.career-heading h3{font-size:20px;font-weight:500;letter-spacing:-.4px}
.career-heading .eyebrow{color:var(--muted);font-size:10px}
.career-list{list-style:none;padding:0;margin:0;border-top:1px solid var(--line)}
.career-item{display:grid;grid-template-columns:minmax(170px,.65fr) minmax(0,1.8fr);gap:44px;padding-block:29px;border-bottom:1px solid var(--line)}
.career-context{display:flex;flex-direction:column;gap:6px;font-size:13px;color:var(--muted);padding-top:3px}
.career-company{font-size:14px;font-weight:600;color:var(--ink)}
.career-story h4{font-size:22px;font-weight:500;letter-spacing:-.5px;line-height:1.35;margin:0 0 12px}
.career-story p{font-size:16px;line-height:1.8;color:var(--muted);max-width:780px}
.career-toolkit{display:flex;align-items:baseline;justify-content:space-between;gap:20px;padding-top:25px;color:var(--muted)}
.career-toolkit .eyebrow{font-size:10px;flex-shrink:0}
.career-toolkit p{font-size:14px}
@media(max-width:900px){.about-intro{gap:38px}.career-item{gap:28px;grid-template-columns:170px minmax(0,1fr)}.career-toolkit{align-items:start;flex-direction:column;gap:8px}}
@media(max-width:650px){.career-about{padding-block:40px 45px}.about-intro{grid-template-columns:1fr;gap:28px}.career-about h2{font-size:48px;margin-top:14px}.career-caption{max-width:none;margin-top:16px}.career-about .about-copy>p:first-child{font-size:24px}.career-heading{margin-top:38px}.career-heading .eyebrow{display:none}.career-item{grid-template-columns:1fr;gap:12px;padding-block:25px}.career-context{flex-direction:row;flex-wrap:wrap;justify-content:space-between;gap:8px}.career-story h4{font-size:22px}.career-story p{font-size:15px}}

.project-links{flex-wrap:wrap}.project-links a:hover{text-decoration:underline;text-underline-offset:4px}.planestro-feature:hover .domain{color:inherit}

.profile-links{display:flex;align-items:center;flex-wrap:wrap;gap:20px;font-size:14px}.profile-links a:hover{text-decoration:underline;text-underline-offset:4px}.profile-links a:focus-visible{outline:3px solid #253be8;outline-offset:5px}.about-profiles{margin-top:18px;color:var(--blue)}.footer,.site-footer{flex-wrap:wrap}

/* Display the supplied Planestro thumbnail in full at every screen size. */
.hero-introduction p+p{margin-top:18px}
.planestro-thumbnail{background:#041524}
.planestro-thumbnail:after{display:none}
.planestro-thumbnail .project-number{top:auto;bottom:12px;right:12px}
.planestro-thumbnail img{object-fit:contain}
.planestro-feature:hover .planestro-thumbnail img{transform:none}
.project-grid .project-copy p+p{margin-top:15px}
@media(max-width:760px){.project-grid .planestro-thumbnail{aspect-ratio:1672/941}}

/* Keep the full lake artwork visible on phones. */
@media(max-width:760px){.project-grid .lake{aspect-ratio:1672/941}}

.career-story p+p{margin-top:14px}

/* A concise homepage with room to explore each part of the site. */
.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.home-projects{padding-bottom:48px}
.project-preview-list{display:grid;gap:16px}
.project-preview{display:grid;grid-template-columns:240px minmax(0,1fr) 24px;gap:28px;align-items:center;padding:16px;border:1px solid var(--line);border-radius:8px;background:#fff;transition:border-color .2s}
.project-preview:hover{border-color:var(--blue)}
.project-preview img{display:block;width:100%;height:auto;aspect-ratio:1672/941;object-fit:contain;background:#101725;border-radius:5px}
.project-preview .eyebrow{font-size:10px;letter-spacing:1px}
.project-preview h3{font-size:24px;line-height:1.3;letter-spacing:-.6px;font-weight:550;margin:5px 0 8px}
.project-preview p{max-width:620px;font-size:16px;line-height:1.6;color:var(--muted)}
.preview-arrow{color:var(--blue);font-size:24px}
.home-about{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:64px;border-top:1px solid var(--line);padding-block:46px}
.home-about h2{font-size:40px;line-height:1.15;letter-spacing:-1.4px;margin-top:12px}
.home-about h2 em{font-family:var(--serif);font-weight:400;color:var(--blue)}
.home-about p{font-size:18px;line-height:1.75;color:var(--muted);margin-bottom:20px}
.home-journal{padding-bottom:48px}
.home-journal .post-info h3{font-size:23px}
.projects-page{border-top:0;padding-top:0}
.about-page{border-top:0}
.about-page-title{font-size:clamp(48px,5.2vw,72px);line-height:1.08;letter-spacing:-2px;margin:20px 0 0}
.about-page .career-heading h2{font-size:24px;line-height:1.35;letter-spacing:-.6px;margin:0}
.about-page .career-story h3{font-size:22px;font-weight:500;letter-spacing:-.5px;line-height:1.35;margin:0 0 12px}
@media(max-width:760px){.project-preview{grid-template-columns:170px minmax(0,1fr);gap:20px}.preview-arrow{display:none}.project-preview h3{font-size:22px}.home-about{grid-template-columns:1fr;gap:22px;padding-block:36px}.home-about h2{font-size:36px}.home-about p{font-size:16px}}
@media(max-width:520px){.project-preview{grid-template-columns:1fr;padding:16px;gap:16px}.project-preview img{max-width:100%}.project-preview h3{font-size:23px}.project-preview p{font-size:15px}.home-projects .section-heading{align-items:baseline;gap:14px}.home-projects h2{font-size:22px}.section-heading .text-link{flex-shrink:0;font-size:13px}.home-journal .post-info h3{font-size:22px}.home-journal h2{font-size:27px}.about-page-title{font-size:52px}}

/* Every blog preview pairs a cover image with its metadata and title. */
.post-with-image{grid-template-columns:minmax(220px,300px) minmax(0,1fr) auto;gap:28px}
.post-preview-image{display:block;width:100%;height:auto;aspect-ratio:2048/853;object-fit:contain;border-radius:7px;background:#172132;border:1px solid var(--line)}
.post-content{min-width:0}
.post-with-image .post-date{flex-direction:row;flex-wrap:wrap;gap:5px 14px;align-items:baseline;color:var(--muted);margin-bottom:10px}
.post-with-image .post-info p{margin-top:10px}
.home-journal .post-with-image{grid-template-columns:240px minmax(0,1fr) auto}
@media(max-width:900px){.post-with-image,.home-journal .post-with-image{grid-template-columns:220px minmax(0,1fr);gap:12px 24px}.post-with-image .post-preview-image{grid-row:1/3;align-self:center}.post-with-image .read-label{grid-column:2}.post-with-image .post-info h3{font-size:23px}}
@media(max-width:650px){.post-with-image,.home-journal .post-with-image{grid-template-columns:1fr;gap:18px}.post-with-image .post-preview-image{grid-row:auto}.post-with-image .read-label{grid-column:auto;margin:0}.post-with-image .post-info h3{font-size:22px}}

/* Aruba cover introduces the About page; keep all text and the portrait visible. */
.about-banner{margin-block:36px 0;border:1px solid var(--line);border-radius:9px;overflow:hidden;background:#edf5fb}
.about-banner img{display:block;width:100%;height:auto}
.about-banner+.about-page{padding-top:40px}
@media(max-width:650px){.about-banner{margin-top:24px}.about-banner img{width:140%;max-width:none;margin-left:-40%}.about-banner+.about-page{padding-top:32px}}
