@charset "UTF-8";
:root{--paper:#f7f8fa;--ink:#111827;--muted:#303b4c;--line:#dfe4ec;--blue:#324dd7;--blue-dark:#253bb0;--sans:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;--radius:999px;--container:1160px}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:112px}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.7;-webkit-font-smoothing:antialiased;min-height:100svh;display:flex;flex-direction:column}
a{color:inherit;text-decoration:none}
button{font:inherit;cursor:pointer}
h1,h2,h3,p{margin:0}
h1,h2,h3{text-wrap:balance}
::selection{background:#dfe5ff;color:var(--ink)}
:focus-visible{outline:3px solid var(--blue);outline-offset:5px}
.container{width:calc(100% - 96px);max-width:var(--container);margin-inline:auto}
.skip-link{position:absolute;left:20px;top:-80px;z-index:20;background:var(--ink);color:white;padding:10px 16px;border-radius:var(--radius)}
.skip-link:focus{top:10px}
.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}
.site-header{position:sticky;top:0;z-index:10;background:var(--paper);border-bottom:1px solid var(--line)}
.header-inner{min-height:94px;display:flex;align-items:center;justify-content:space-between;gap:28px}
.brand{display:inline-flex;align-items:center;justify-content:center;min-width:48px;min-height:48px;line-height:1;flex-shrink:0}
.brand-mark{display:block;width:84px;height:auto}
.main-nav{display:flex;align-items:center;gap:34px;font-size:15px;font-weight:600}
.main-nav a{padding-block:12px;position:relative}
.main-nav a:hover,.main-nav a[aria-current="page"]{color:var(--blue)}
.main-nav a[aria-current="page"]:after{content:"";position:absolute;bottom:4px;left:0;right:0;height:2px;background:var(--blue)}
.home-main{flex:1;display:flex;align-items:center}
.hero{padding-block:58px 72px}
.eyebrow{font-size:12px;font-weight:600;letter-spacing:.025em;color:var(--muted);margin-bottom:24px}
.hero h1{font-size:clamp(56px,6.6vw,86px);line-height:1.05;letter-spacing:-.035em;font-weight:550}
.hero h1 span{color:var(--blue)}
.hero-intro{font-size:18px;line-height:1.7;max-width:570px;color:var(--muted);margin-top:29px}
.hero-actions{display:flex;gap:14px;flex-wrap:wrap;margin-top:34px}
.button{display:inline-flex;align-items:center;justify-content:center;gap:16px;font-size:13px;font-weight:600;line-height:1.3;padding:13px 20px;border:1px solid transparent;border-radius:var(--radius);transition:background-color .15s,transform .15s,box-shadow .15s;min-height:46px;white-space:nowrap}
.button-primary{background:var(--blue);color:#fff;box-shadow:0 3px 0 var(--blue-dark),0 7px 14px rgba(50,77,215,.2),inset 0 1px 0 rgba(255,255,255,.15)}
.button-primary:hover{background:var(--blue-dark);transform:translateY(-1px)}
.button-secondary{background:#fff;color:var(--ink);border-color:#cbd2df;box-shadow:0 3px 0 #d5dbe5,0 7px 14px rgba(17,24,39,.09),inset 0 1px 0 #fff}
.button-secondary:hover{border-color:var(--ink);transform:translateY(-1px)}
.button:active{transform:translateY(2px);box-shadow:0 1px 0 rgba(17,24,39,.2),0 3px 6px rgba(17,24,39,.1)}
.button span[aria-hidden]{font-size:16px;line-height:1}
.text-link{font-size:14px;font-weight:550;display:inline-flex;align-items:center;gap:17px;color:var(--blue);padding-block:5px;text-decoration:underline;text-decoration-color:#b9c4f4;text-underline-offset:5px}
.text-link:hover{text-decoration-color:var(--blue)}
.site-footer{margin-top:auto;border-top:1px solid var(--line);background:var(--paper)}
.footer-inner{display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:78px;font-size:11px;color:var(--muted)}
.footer-inner a:hover{text-decoration:underline;text-underline-offset:4px}
.page-main{padding-block:66px 74px}
.page-heading{max-width:820px;margin-bottom:50px}
.page-heading .eyebrow{margin-bottom:17px}
.page-heading h1{font-size:clamp(40px,4.5vw,60px);line-height:1.1;letter-spacing:-.035em;font-weight:550}
.page-heading>p:not(.eyebrow),.page-heading-copy>p:not(.eyebrow){font-size:17px;line-height:1.75;color:var(--muted);margin-top:23px;max-width:640px}
.project-list{border-top:1px solid var(--line)}
.project{display:grid;grid-template-columns:.85fr 1.35fr;gap:70px;padding-block:38px 42px;border-bottom:1px solid var(--line)}
.project-status{font-size:11px;color:var(--muted);margin-bottom:12px}
.project-heading h2{font-size:31px;line-height:1.2;letter-spacing:-.035em;font-weight:550}
.project-copy>p{max-width:650px;color:var(--muted);font-size:16px}
.project-copy .project-story{margin-top:18px}
.project-copy .project-note{font-size:13px;margin-top:18px;max-width:590px}
.project-copy .text-link{margin-top:15px}
.page-next{display:flex;align-items:center;justify-content:space-between;gap:35px;padding-top:45px}
.page-next h2{font-size:26px;font-weight:550;line-height:1.3;letter-spacing:-.03em}
.page-next p{color:var(--muted);font-size:14px;margin-top:9px;max-width:570px}
.inline-actions{display:flex;align-items:center;gap:24px;flex-shrink:0}
.service-list{display:grid;grid-template-columns:1fr 1fr;gap:0 64px;border-top:1px solid var(--line)}
.service{padding-block:30px 34px;border-bottom:1px solid var(--line)}
.service h2{font-size:24px;font-weight:550;line-height:1.3;letter-spacing:-.025em;max-width:330px;margin-bottom:15px}
.service p{color:var(--muted);font-size:16px;max-width:500px}
.process-section{padding-top:57px;scroll-margin-top:20px}
.section-heading h2{font-size:33px;font-weight:550;line-height:1.25;letter-spacing:-.035em}
.section-heading p{font-size:16px;color:var(--muted);max-width:590px;margin-top:17px}
.process-list{list-style:none;padding:0;margin:29px 0 0;counter-reset:step}
.process-list li{counter-increment:step;display:grid;grid-template-columns:24px 1fr 1.7fr;column-gap:23px;padding-block:23px;border-top:1px solid var(--line)}
.process-list li:before{content:counter(step,decimal-leading-zero);font-size:11px;color:var(--muted);padding-top:4px}
.process-list h3{font-size:17px;font-weight:550;letter-spacing:-.015em}
.process-list p{font-size:15px;color:var(--muted);max-width:590px}
.about-column{max-width:760px;margin-inline:auto}
.about-heading{margin-bottom:32px}
.about-heading>p.about-location{font-size:13px;margin-top:20px}
.biography>p{font-size:17px;line-height:1.85;color:var(--muted);margin-bottom:24px}
.biography .about-lead{font-size:22px;line-height:1.6;color:var(--ink);letter-spacing:-.02em;margin-bottom:29px}
.contact-section{margin-top:45px;border-top:1px solid var(--line);padding-top:38px;scroll-margin-top:25px}
.contact-section h2{font-size:32px;line-height:1.25;letter-spacing:-.035em;font-weight:550}
.contact-section>p{font-size:16px;color:var(--muted);max-width:600px;margin-top:17px}
.contact-section .button{margin-top:25px;min-width:180px}
@media(max-width:900px){.container{width:calc(100% - 64px)}.project{gap:38px;grid-template-columns:1fr 1.4fr}.service-list{gap:0 36px}.page-next{align-items:flex-start;flex-direction:column;gap:24px}.process-list li{grid-template-columns:24px 1fr 1.5fr;column-gap:17px}}
@media(max-width:620px){html{scroll-padding-top:90px}.container{width:calc(100% - 40px)}.header-inner{min-height:74px;gap:16px}.brand-name{font-size:17px}.brand-description{display:none}.main-nav{font-size:12px;gap:20px}.main-nav a{padding-block:13px}.hero{padding-block:32px 36px}.eyebrow{font-size:10px;letter-spacing:.015em;margin-bottom:22px}.hero h1{font-size:clamp(40px,9.7vw,60px);line-height:1.07;letter-spacing:-.035em}.hero-intro{font-size:17px;line-height:1.65;margin-top:24px;max-width:390px}.hero-actions{display:flex;flex-wrap:wrap;gap:13px 12px;margin-top:26px;max-width:390px}.hero-actions .button{font-size:12px;padding:11px 16px;gap:13px;min-width:0;min-height:44px;flex:0 0 auto}.footer-inner{min-height:91px;align-items:flex-start;justify-content:center;flex-direction:column;gap:5px;font-size:10px;padding-block:18px}.footer-location{font-size:10px}.page-main{padding-block:39px 48px}.page-heading{margin-bottom:31px}.page-heading h1{font-size:40px;line-height:1.12}.page-heading>p:not(.eyebrow),.page-heading-copy>p:not(.eyebrow){font-size:15px;margin-top:19px}.project{grid-template-columns:1fr;gap:20px;padding-block:29px 32px}.project-status{font-size:10px;margin-bottom:9px}.project-heading h2{font-size:29px}.project-copy>p{font-size:15px}.project-copy h3{margin-top:19px}.project-copy .project-note{font-size:12px}.page-next{padding-top:32px;gap:22px}.page-next h2{font-size:25px}.page-next p{font-size:14px}.inline-actions{flex-wrap:wrap;gap:15px 22px}.service-list{grid-template-columns:1fr}.service{padding-block:25px 28px}.service h2{font-size:23px;margin-bottom:12px}.service p{font-size:15px}.process-section{padding-top:39px}.section-heading h2{font-size:29px}.section-heading p{font-size:15px}.process-list li{grid-template-columns:20px 1fr;gap:8px 17px;padding-block:21px}.process-list h3{font-size:17px}.process-list p{grid-column:2;font-size:14px}.about-heading>p.about-location{font-size:12px}.biography>p{font-size:16px;line-height:1.85;margin-bottom:24px}.biography .about-lead{font-size:20px;line-height:1.65;margin-bottom:25px}.contact-section{margin-top:34px;padding-top:31px}.contact-section h2{font-size:29px}.contact-section>p{font-size:15px}}
@media(max-width:359px){.header-inner{gap:12px}.main-nav{gap:15px;font-size:11px}.brand-name{font-size:16px}.hero-actions .button{font-size:11px;padding-inline:12px}.page-heading h1{font-size:36px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}}
@media print{.site-header{position:static}.container{width:100%}.button,.skip-link{display:none}.page-main,.hero{padding-block:25px}.hero h1{font-size:48px}.page-heading h1{font-size:36px}.site-footer{margin-top:25px}.project,.service,.process-list li{break-inside:avoid}body{min-height:auto}}

/* Approved Milwaukee artwork: content stays as real HTML. */
:root{--container:1280px}
body{overflow-x:clip}
.container{width:calc(100% - 112px)}
.site-header{background:var(--paper)}
.home-page{background-color:var(--paper);background-image:linear-gradient(to bottom,var(--paper) 18%,rgba(247,248,250,0) 34%,rgba(247,248,250,0) 88%,var(--paper) 100%),url('/assets/milwaukee-home.webp');background-position:top,right bottom;background-size:100% 100%,100% auto;background-repeat:no-repeat;background-blend-mode:normal,multiply}
.home-page .site-header{border-bottom-color:transparent}
.home-main{align-items:flex-start;min-height:calc(100svh - 172px)}
.hero{padding-block:clamp(32px,5svh,60px) clamp(120px,18svh,185px)}
.hero h1{font-size:clamp(56px,6.2vw,96px);max-width:750px;line-height:1.05;font-weight:650}
.hero-intro{max-width:590px;font-size:21px;line-height:1.65;font-weight:550;color:var(--ink)}
.home-page .site-footer{border-top:0;background:linear-gradient(90deg,rgba(247,248,250,.97),rgba(247,248,250,.85) 48%,transparent 85%)}
.home-page .footer-inner{justify-content:flex-start;gap:42px;font-size:12px}
.content-page{background:var(--paper) url('/assets/drafting-lines.svg') center 95px/100% 1600px repeat-y}
.page-main{position:relative;isolation:isolate}
.work-page .page-heading,.services-page .page-heading{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(24px,4vw,56px);align-items:center;position:relative;max-width:none;min-height:350px;padding-top:12px;margin-bottom:34px;isolation:isolate}
.page-heading-copy{min-width:0}
.work-page .page-heading h1,.services-page .page-heading h1{position:relative;z-index:1;max-width:520px}
.work-page .page-heading-copy>p,.services-page .page-heading-copy>p{position:relative;z-index:1;max-width:440px}
.page-art{position:relative;z-index:0;min-width:0;width:100%;height:350px;pointer-events:none}
.page-art img{width:100%;height:100%;object-fit:contain;object-position:center;mix-blend-mode:multiply}
.project-list,.service-list,.process-section,.page-next{position:relative;z-index:1}
.services-page .page-next{display:block;position:relative;min-height:200px;padding-left:43%;padding-top:45px}
.services-page .page-next:before{content:"";position:absolute;pointer-events:none;left:-56px;bottom:0;width:43%;height:180px;background:url('/assets/floor-plan-warm-v2.svg') left bottom/contain no-repeat}
.services-page .page-next>.button{margin-top:20px}
.about-column{width:57%;max-width:760px;margin-inline:0}
.about-column>.page-heading,.biography,.contact-section{position:relative;z-index:1}
.about-art{position:absolute;z-index:0;top:25px;bottom:18px;right:-56px;width:53%;pointer-events:none;mask-image:linear-gradient(to right,transparent 15%,#000 40%)}
.about-art img{width:100%;height:100%;object-fit:cover;object-position:right center;mix-blend-mode:multiply}
@media(min-width:901px) and (max-height:820px){.hero{padding-block:30px 90px}.hero h1{font-size:clamp(56px,5.9vw,82px)}}
@media(max-width:1100px) and (min-width:701px){.work-page .page-heading h1,.services-page .page-heading h1{max-width:100%;font-size:48px}.work-page .page-heading-copy>p,.services-page .page-heading-copy>p{max-width:100%}.about-column{width:60%}.about-art{width:53%;right:-40px}}
@media(max-width:900px){.container{width:calc(100% - 64px)}.brand-name{font-size:21px}.brand-description{font-size:10px}.about-column{width:100%;max-width:760px;margin-inline:auto}.about-art{position:relative;top:auto;bottom:auto;right:auto;width:100%;height:280px;margin:14px 0 28px;mask-image:linear-gradient(to bottom,transparent,#000 12%,#000 88%,transparent)}.about-art img{object-fit:cover;object-position:right 42%}.home-page .hero-intro{max-width:500px}.home-page .hero h1{max-width:620px}.home-page{background:var(--paper)}.home-main{display:block;position:relative;isolation:isolate;min-height:0}.home-main:before{content:"";position:absolute;z-index:-1;pointer-events:none;left:0;right:0;bottom:0;height:390px;background:url('/assets/milwaukee-home.webp') center bottom/auto 100% no-repeat;mix-blend-mode:multiply;mask-image:linear-gradient(to bottom,transparent,#000 28%,#000 76%,transparent)}.hero{padding-bottom:300px}}
@media(max-width:700px){.container{width:calc(100% - 40px)}.brand-name{font-size:17px}.brand-description{display:none}.home-page{background:var(--paper)}.home-main{display:block;position:relative;isolation:isolate;min-height:0}.home-main:before{content:"";position:absolute;z-index:-1;pointer-events:none;left:0;right:0;bottom:0;height:350px;background:url('/assets/milwaukee-home.webp') center bottom/auto 100% no-repeat;mix-blend-mode:multiply;mask-image:linear-gradient(to bottom,transparent,#000 28%,#000 76%,transparent)}.hero{padding-block:28px 290px}.hero h1{font-size:clamp(40px,9.7vw,60px);max-width:none;line-height:1.07}.hero-intro{max-width:390px!important;color:var(--ink)}.home-page .site-footer{background:var(--paper)}.home-page .footer-inner{justify-content:center;gap:5px;font-size:10px}.work-page .page-heading,.services-page .page-heading{display:block;min-height:0;padding-top:0;margin-bottom:28px}.work-page .page-heading h1,.services-page .page-heading h1{font-size:40px;max-width:100%}.work-page .page-heading-copy>p,.services-page .page-heading-copy>p{max-width:100%}.page-art{position:relative;top:auto;right:auto;width:calc(100% + 40px);height:240px;margin:18px -20px 0;mask-image:none}.page-art img{object-fit:contain;object-position:center}.services-page .page-next{padding:135px 0 0;min-height:0}.services-page .page-next:before{left:-20px;top:14px;bottom:auto;width:260px;height:105px}.about-art{height:270px;width:calc(100% + 40px);margin-left:-20px;mask-image:linear-gradient(to bottom,transparent,#000 12%,#000 88%,transparent)}.content-page{background-size:auto 1500px}.about-column{width:100%}}
@media(max-width:359px){.brand-name{font-size:16px}.work-page .page-heading h1,.services-page .page-heading h1{font-size:36px}.hero{padding-bottom:265px}.home-main:before{height:325px}}
@media print{body{background:white!important}.page-art,.about-art{display:none}.about-column{width:100%}.home-main:before,.services-page .page-next:before{display:none}.services-page .page-next{padding-left:0;padding-top:20px}.hero{padding-block:25px}.hero h1{font-size:48px}.work-page .page-heading,.services-page .page-heading{min-height:0}}

/* Keep the selected monogram and compact touch targets consistent on phones. */
@media(max-width:700px){.brand-mark{width:66px}.header-inner{min-height:74px}.hero-intro{font-size:17px;font-weight:550;line-height:1.65}}

/* Architectural studies fill open columns without sitting behind the copy. */
.project-blueprint{display:block;width:clamp(180px,75%,270px);height:136px;object-fit:contain;object-position:left center;margin-top:22px;opacity:.78;pointer-events:none;mix-blend-mode:multiply}
.project:first-child .project-blueprint{width:218px}
.service{position:relative}
.service:after{content:"";position:absolute;left:0;bottom:9px;width:158px;height:14px;background:url('/assets/blueprint-dimension.svg') left center/contain no-repeat;pointer-events:none}
.process-section .section-heading{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);align-items:center;gap:40px}
.section-heading-copy{min-width:0}
.process-blueprint{display:block;justify-self:center;width:min(100%,300px);height:148px;object-fit:contain;opacity:.76;mix-blend-mode:multiply;pointer-events:none}
.page-heading-copy:after,.about-heading:after{content:"";display:block;width:160px;height:14px;margin-top:26px;background:url('/assets/blueprint-dimension.svg') left center/contain no-repeat;pointer-events:none}
@media(max-width:700px){.project-blueprint{width:200px;height:104px}.process-section .section-heading{grid-template-columns:1fr;gap:0}.process-blueprint{display:none}.page-heading-copy:after,.about-heading:after{width:130px;margin-top:20px}}
@media(max-width:620px){.project-heading{position:relative}.project-blueprint{display:none}.project-heading:after{content:"";display:block;width:120px;height:10px;margin-top:16px;background:url('/assets/blueprint-dimension.svg') left center/contain no-repeat;pointer-events:none}}
@media print{.project-blueprint,.process-blueprint,.project-heading:after,.service:after,.page-heading-copy:after,.about-heading:after{display:none}.process-section .section-heading{display:block}}

/* Fading construction lines drift through the open background on every page. */
.content-page{background-image:url('/assets/drafting-lines.svg'),url('/assets/blueprint-wisps.svg');background-position:center 95px,center 62px;background-size:100% 1600px,1600px 1100px;background-repeat:repeat-y}
.home-main{position:relative;isolation:isolate}
.home-main:after{content:"";position:absolute;z-index:-1;inset:0;pointer-events:none;background:url('/assets/blueprint-wisps.svg') center -32px/1600px 1100px repeat-y;mix-blend-mode:multiply}
@media(max-width:1600px) and (min-width:901px){.content-page{background-size:100% 1600px,100% auto}.home-main:after{background-size:100% auto}}
@media(max-width:900px){.content-page{background-size:100% 1500px,1100px auto}.home-main:after{background-size:1100px auto;opacity:.72}}
@media(max-width:700px){.content-page{background-size:auto 1500px,900px auto}.home-main:after{background-size:900px auto;opacity:.6}}
@media print{.home-main:after{display:none}}

/* Direct contact details use the same readable treatment across pages. */
.footer-contact{display:flex;align-items:center;flex-wrap:wrap;gap:6px 24px}
@media(max-width:620px){.footer-contact{gap:5px 18px}}

/* The supplied transparent artwork joins the existing mark and direct navigation. */
.header-inner{display:grid;min-height:0;grid-template-columns:auto minmax(0,1fr);grid-template-areas:"brand descriptor" "nav nav";grid-template-rows:84px 44px;gap:0 12px;padding-block:6px 4px}
.brand{grid-area:brand;justify-self:start}
.main-nav{grid-area:nav;justify-self:end}
.main-nav a{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;padding-block:9px}
.header-descriptor{grid-area:descriptor;position:relative;justify-self:start;width:min(100%,560px);height:84px;overflow:hidden;pointer-events:none}
.header-descriptor img{display:block;position:absolute;top:50%;left:-28px;transform:translateY(-50%);width:100%;height:auto}
.contact-actions{display:flex;align-items:center;flex-wrap:wrap;gap:14px;margin-top:25px}
.contact-actions .button{margin-top:0;min-width:132px}
.contact-actions .button-linkedin{gap:12px;padding-block:11px}
.linkedin-icon{display:block;width:auto;height:21px;flex-shrink:0}
html{scroll-padding-top:160px}
@media(min-width:901px){.home-main{min-height:calc(100svh - 217px)}}
@media(max-width:700px){html{scroll-padding-top:146px}.header-inner{grid-template-rows:70px 44px;column-gap:8px}.brand-mark{width:60px}.header-descriptor{width:min(100%,470px);height:70px}.main-nav{justify-self:center;gap:32px;font-size:13px}}
@media(max-width:620px){.header-descriptor img{width:min(144.8%,460px);left:max(-10%,-32px)}}
@media(max-width:359px){.brand-mark{width:54px}.main-nav{gap:28px}}
@media(max-width:359px){.contact-actions{gap:12px}.contact-actions .button{min-width:124px;padding-inline:16px}}
@media print{.header-descriptor{display:none}.header-inner{display:flex;min-height:70px;padding:0}}

/* Selected portrait frame: the supplied photograph stays in full color. */
.about-heading{display:grid;grid-template-columns:minmax(0,1fr) clamp(176px,16vw,216px);align-items:center;gap:28px;max-width:none}
.about-heading:after{display:none}
.about-heading-copy{min-width:0}
.about-heading-copy .about-tagline{font-size:16px;line-height:1.6;color:var(--muted);margin-top:14px;max-width:420px}
.about-heading-copy .about-location{font-size:13px;line-height:1.7;color:var(--muted);margin-top:14px}
.about-heading-copy:after{content:"";display:block;width:160px;height:14px;margin-top:20px;background:url('/assets/blueprint-dimension.svg') left center/contain no-repeat;pointer-events:none}
.portrait-frame{position:relative;width:100%;aspect-ratio:1;margin:0;isolation:isolate}
.portrait-frame img{display:block;width:100%;height:100%;object-fit:cover;border-radius:24px}
.portrait-frame:after{content:"";position:absolute;inset:-20px;pointer-events:none;background:url('/assets/portrait-blueprint-frame.svg') center/100% 100% no-repeat}
@media(max-width:620px){.about-heading{grid-template-columns:1fr;gap:30px;margin-bottom:38px}.about-heading-copy .about-tagline{font-size:15px}.about-heading-copy .about-location{font-size:12px}.about-heading-copy:after{width:130px}.portrait-frame{width:190px;justify-self:center}}
@media print{.portrait-frame{width:170px}.portrait-frame:after,.about-heading-copy:after{display:none}}
