:root{--ink:#111;--muted:#646464;--paper:#fff;--warm:#f4f3ef;--line:#d9d9d5;--blue:#096fcf;--red:#ed1c24;--max:1240px;--pad:clamp(1.25rem,4vw,4rem)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:Arial,"Helvetica Neue",sans-serif;font-size:16px;line-height:1.65;-webkit-font-smoothing:antialiased}body.nav-open{overflow:hidden}img{display:block;max-width:100%}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}.container{width:min(100% - (var(--pad)*2),var(--max));margin-inline:auto}.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-link{position:fixed;z-index:1000;top:0;left:1rem;transform:translateY(-110%);background:#fff;padding:.75rem 1rem}.skip-link:focus{transform:none}
.site-header{height:96px;background:rgba(255,255,255,.97);border-bottom:1px solid #ececea;position:relative;z-index:50}.nav-wrap{height:100%;display:flex;align-items:center;justify-content:space-between}.brand{width:205px}.site-nav{display:flex;align-items:center;gap:clamp(1rem,2vw,2rem);font-size:.76rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.site-nav>a:not(.button){padding:.7rem 0;position:relative}.site-nav>a:not(.button)::after{content:"";position:absolute;left:0;right:100%;bottom:.35rem;height:2px;background:var(--blue);transition:right .2s}.site-nav>a:hover::after,.site-nav>a.active::after{right:0}.nav-toggle{display:none;background:none;border:0;padding:.5rem}.nav-toggle span:not(.sr-only){display:block;width:25px;height:2px;background:#111;margin:5px}
.button{display:inline-flex;justify-content:center;align-items:center;min-height:51px;padding:.85rem 1.55rem;background:var(--ink);border:1px solid var(--ink);color:#fff;font-size:.72rem;line-height:1.2;font-weight:800;letter-spacing:.1em;text-transform:uppercase;transition:background .2s,color .2s,transform .2s}.button:hover{background:var(--blue);border-color:var(--blue);transform:translateY(-2px)}.button-small{min-height:42px;padding:.7rem 1.15rem}.button-outline{background:transparent;color:var(--ink)}.button-light{background:#fff;border-color:#fff;color:#111}.button-outline-light{background:transparent;border-color:#777;color:#fff}.button-row{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:2.25rem}.button-row.centered{justify-content:center}.eyebrow{text-transform:uppercase;letter-spacing:.18em;font-size:.7rem;font-weight:800;margin:0 0 1.25rem}.hero{min-height:680px;display:grid;align-items:center;position:relative;overflow:hidden;background:linear-gradient(90deg,#fff 0 67%,var(--warm) 67%)}.hero::after{content:"";position:absolute;width:4px;height:110px;right:calc(33% - 2px);top:0;background:linear-gradient(var(--red) 0 50%,var(--blue) 50%)}.hero-grid{display:grid;grid-template-columns:2fr 1fr;align-items:center}.hero h1,.page-hero h1{font-family:"Arial Narrow",Arial,sans-serif;font-size:clamp(4rem,8.8vw,8rem);line-height:.88;letter-spacing:-.06em;text-transform:uppercase;margin:0 0 2rem;max-width:900px}.hero-lead{font-size:clamp(1.15rem,2vw,1.45rem);line-height:1.45;margin:0;max-width:650px}.hero-lead span{font-size:.8em;color:var(--muted);letter-spacing:.04em}.hero-mark{padding-left:clamp(2rem,5vw,5rem);display:flex;flex-direction:column;text-transform:uppercase;font-weight:800;letter-spacing:.18em;font-size:.67rem;color:#767671}.hero-mark::before{content:"";width:1px;height:145px;background:#bbb;margin-bottom:2rem}.hero-mark span+span{font-size:1.4rem;letter-spacing:-.02em;color:#111;margin-top:.3rem}.split-services{display:grid;grid-template-columns:1fr 1fr}.service-panel{min-height:490px;padding:clamp(2rem,6vw,6rem) max(var(--pad),calc((100vw - var(--max))/2 + var(--pad)));padding-right:clamp(2rem,7vw,7rem);position:relative;background:var(--warm)}.service-panel.dark{background:#171717;color:#fff}.service-panel .number{position:absolute;top:2rem;right:2rem;color:#999;font-size:.7rem;letter-spacing:.15em}.service-panel h2,.section h2{font-family:"Arial Narrow",Arial,sans-serif;font-size:clamp(2.4rem,4.7vw,4.6rem);letter-spacing:-.045em;line-height:1.04;margin:0 0 1.5rem}.service-panel p:not(.eyebrow){max-width:510px;color:#5c5c59}.service-panel.dark p:not(.eyebrow){color:#b9b9b5}.text-link{display:inline-block;margin-top:2rem;text-transform:uppercase;letter-spacing:.12em;font-size:.7rem;font-weight:800}.text-link b{color:var(--blue);font-size:1rem;margin-left:.5rem}.section{padding:clamp(5rem,9vw,9rem) 0}.two-col{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(3rem,8vw,9rem);align-items:start}.body-large{font-size:clamp(1.1rem,1.7vw,1.35rem);color:#484846}.body-large p:first-child{margin-top:0}.license-band{border-block:1px solid var(--line);padding:2.2rem 0}.license-grid{display:grid;grid-template-columns:1fr 1fr 1fr;align-items:center;text-align:center;text-transform:uppercase;letter-spacing:.12em;font-size:.66rem}.license-grid strong{font-size:clamp(1.5rem,3vw,2.4rem);letter-spacing:.05em;border-inline:1px solid var(--line)}.cta{background:#151515;color:#fff;text-align:center}.cta h2{font-size:clamp(3.2rem,7vw,6.8rem)}.page-hero{min-height:590px;padding:clamp(6rem,10vw,10rem) 0;display:flex;align-items:center;background:linear-gradient(110deg,#f5f4f0 0 76%,#eae9e4 76%);position:relative}.page-hero::after{content:"";position:absolute;top:0;right:calc(24% - 2px);width:4px;height:80px;background:linear-gradient(var(--red) 50%,var(--blue) 50%)}.page-hero h1{font-size:clamp(3.7rem,7vw,7rem)}.narrow-left{margin-left:max(var(--pad),calc((100vw - var(--max))/2));margin-right:auto}.page-hero .hero-lead{max-width:690px}.commercial-hero{background:linear-gradient(110deg,#171717 0 76%,#242424 76%);color:#fff}.commercial-hero .hero-lead{color:#c4c4c0}.intro-grid{display:grid;grid-template-columns:1fr 3fr;gap:3rem;margin-bottom:4rem}.intro-grid h2{max-width:850px}.card-grid{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line)}.card-grid article{padding:2.4rem 2.4rem 1rem 0}.card-grid article+article{padding-left:2.4rem;border-left:1px solid var(--line)}.card-grid span,.service-list span{color:var(--blue);font-size:.68rem;letter-spacing:.12em}.card-grid h3,.service-list h3{font-size:1.4rem;line-height:1.25;margin:1.2rem 0}.card-grid p,.service-list p{color:var(--muted)}.off-white{background:var(--warm)}.check-list{list-style:none;margin:0;padding:0;border-top:1px solid #c7c6c1}.check-list li{padding:1.1rem 0;border-bottom:1px solid #c7c6c1;font-weight:700}.check-list li::before{content:"—";color:var(--blue);margin-right:1rem}.service-list{display:grid;grid-template-columns:repeat(2,1fr);border-top:1px solid var(--line)}.service-list>div{padding:2.5rem 3rem 2.5rem 0;border-bottom:1px solid var(--line)}.service-list>div:nth-child(even){padding-left:3rem;border-left:1px solid var(--line)}.dark-section{background:#171717;color:#fff}.dark-section .body-large{color:#c0c0bc}.bid-cta{text-align:center}.bid-cta h2{font-size:clamp(4rem,8vw,8rem);text-transform:uppercase}.bid-cta>div>p:not(.eyebrow){color:var(--muted);margin-bottom:2.5rem}.team-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(3rem,8vw,8rem)}.profile{position:relative;border-top:4px solid #111;padding-top:3rem}.profile:nth-child(2){border-color:var(--blue)}.profile-index{position:absolute;right:0;top:1rem;font-size:.7rem;color:#888;letter-spacing:.15em}.profile h2{font-size:clamp(2.5rem,4vw,4rem)}.profile>p:not(.eyebrow){font-size:1.15rem;color:var(--muted)}.profile ul{padding:1.5rem 0 0;list-style:none;border-top:1px solid var(--line)}.profile li{padding:.7rem 0;border-bottom:1px solid var(--line)}.contact-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(3rem,9vw,10rem)}.contact-details h2{margin-bottom:.25rem}.contact-details>p{margin-top:0;color:var(--muted)}.contact-link{font-size:clamp(1.1rem,2vw,1.35rem);display:block;margin:.85rem 0;font-weight:700}.contact-link:hover{color:var(--blue)}.web-address{font-size:.9rem}.credential-block{margin-top:3rem;padding-top:1.5rem;border-top:1px solid var(--line);display:flex;flex-direction:column}.credential-block span{font-size:.75rem;letter-spacing:.1em;margin-top:.3rem}.contact-form{display:grid;gap:1.25rem}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1.25rem}.contact-form label{font-size:.68rem;text-transform:uppercase;letter-spacing:.12em;font-weight:800}.contact-form input,.contact-form select,.contact-form textarea{width:100%;display:block;margin-top:.45rem;border:1px solid #c9c9c5;background:#fff;padding:.9rem;border-radius:0;color:#111}.contact-form input:focus,.contact-form select:focus,.contact-form textarea:focus{outline:2px solid var(--blue);outline-offset:1px}.contact-form .button{justify-self:start}.form-note{font-size:.78rem;color:var(--muted);margin:0}.site-footer{background:#0e0e0e;color:#c0c0bd;padding:4.5rem 0 1.5rem;font-size:.85rem}.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:3rem}.footer-logo{width:190px;filter:invert(1) grayscale(1) brightness(2);margin-bottom:1.5rem}.footer-grid a{display:block;margin:.4rem 0}.footer-grid a:hover{color:#fff}.footer-label{color:#777;text-transform:uppercase;letter-spacing:.14em;font-size:.65rem}.footer-bottom{border-top:1px solid #2c2c2c;margin-top:3rem;padding-top:1.25rem;display:flex;justify-content:space-between;color:#777;font-size:.7rem;text-transform:uppercase;letter-spacing:.1em}.reveal{animation:fade-up .65s ease both}@keyframes fade-up{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal{animation:none}.button{transition:none}}
@media(max-width:900px){.site-header{height:78px}.brand{width:170px}.nav-toggle{display:block}.site-nav{position:fixed;inset:78px 0 0;background:#fff;padding:2rem var(--pad);display:flex;flex-direction:column;align-items:stretch;gap:.5rem;transform:translateX(100%);transition:transform .25s;font-size:1rem}.nav-open .site-nav{transform:none}.site-nav .button{margin-top:1rem}.hero{min-height:670px;background:linear-gradient(180deg,#fff 0 88%,var(--warm) 88%)}.hero-grid{grid-template-columns:1fr}.hero-mark{display:none}.hero::after{right:var(--pad);height:80px}.split-services,.two-col,.team-grid,.contact-grid{grid-template-columns:1fr}.service-panel{padding:4rem var(--pad)}.intro-grid{grid-template-columns:1fr;gap:.5rem}.card-grid{grid-template-columns:1fr}.card-grid article,.card-grid article+article{padding:2rem 0;border-left:0;border-bottom:1px solid var(--line)}.license-grid{grid-template-columns:1fr;gap:1.5rem}.license-grid strong{border-inline:0;border-block:1px solid var(--line);padding:1rem}.page-hero{min-height:520px}.page-hero::after{right:var(--pad)}.service-list{grid-template-columns:1fr}.service-list>div,.service-list>div:nth-child(even){padding:2rem 0;border-left:0}.footer-grid{grid-template-columns:1fr 1fr}.footer-grid>div:first-child{grid-column:1/-1}}
@media(max-width:560px){.hero{min-height:620px}.hero h1,.page-hero h1{font-size:clamp(3.25rem,16vw,5rem)}.button-row{flex-direction:column;align-items:stretch}.button-row .button{width:100%}.form-row{grid-template-columns:1fr}.footer-grid{grid-template-columns:1fr}.footer-grid>div:first-child{grid-column:auto}.footer-bottom{flex-direction:column;gap:.5rem}.service-panel{min-height:420px}.page-hero{min-height:500px}.section{padding:4.5rem 0}}

.form-honeypot{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important}.form-status{display:none;margin:0;font-size:.9rem;font-weight:700;text-transform:none;letter-spacing:0}.form-status.is-success,.form-status.is-error{display:block}.form-status.is-success{color:#176b39}.form-status.is-error{color:#a3151a}.contact-form .button:disabled{cursor:wait;opacity:.65;transform:none}

/* Refined operational hero panel and controlled display scale */
html,body{max-width:100%;overflow-x:clip}.hero-copy,.hero-operations,.two-col>*,.intro-grid>*,.contact-grid>*{min-width:0}.hero-operations{align-self:stretch;padding:clamp(5rem,9vw,9rem) clamp(2rem,4vw,4.5rem);display:flex;flex-direction:column;justify-content:center;border-left:1px solid #d8d7d2}.hero-operations .eyebrow{color:#74746f}.hero-operations ol{list-style:none;margin:0;padding:0;border-top:1px solid #c9c8c3}.hero-operations li{display:flex;align-items:center;gap:1.25rem;padding:1.35rem 0;border-bottom:1px solid #c9c8c3;font-family:"Arial Narrow",Arial,sans-serif;font-size:clamp(1.15rem,1.8vw,1.55rem);font-weight:800;letter-spacing:.04em;text-transform:uppercase}.hero-operations li span{color:var(--blue);font-family:Arial,sans-serif;font-size:.62rem;letter-spacing:.14em}.page-hero h1{font-size:clamp(3.7rem,6.25vw,6.2rem)}.bid-cta h2{font-size:clamp(3.6rem,6.9vw,6.9rem)}.contact-form input,.contact-form select,.contact-form textarea{min-height:48px}.footer-grid>div:first-child p{max-width:330px}
@media(max-width:900px){.hero-operations{display:none}.page-hero h1{font-size:clamp(3.35rem,10vw,5.4rem)}.bid-cta h2{font-size:clamp(3.2rem,10vw,5.3rem)}.profile h2,.section h2{overflow-wrap:anywhere}.footer-grid{gap:2.25rem}.footer-grid a{overflow-wrap:anywhere}}
@media(max-width:560px){.hero h1,.page-hero h1{font-size:clamp(3rem,14.5vw,4.5rem)}.hero,.page-hero{min-height:auto;padding-block:5rem}.hero{padding-block:4.5rem}.bid-cta h2{font-size:clamp(2.8rem,13vw,4.25rem)}.section h2{font-size:clamp(2.2rem,11.5vw,3.35rem)}.profile h2{font-size:clamp(2.2rem,12vw,3.2rem)}.site-nav{overflow-y:auto}.contact-form .button{width:100%;min-height:52px}.footer-grid>div:first-child p{max-width:290px}}

.footer-portal{margin-top:1.15rem!important;color:#fff;font-weight:700}.footer-portal:hover{color:var(--blue)!important}

/* Selected projects: repeat each article and add figures as the portfolio grows. */
.site-nav{gap:clamp(.75rem,1.4vw,1.25rem);white-space:nowrap}.brand{flex-shrink:0}.nav-wrap{gap:1.5rem}
/* One contained case study: text left, bounded photography right. */
.projects-intro{padding:2rem 0 1.25rem}
.projects-intro h1{font-family:"Arial Narrow",Arial,sans-serif;font-size:clamp(1.875rem,3vw,2.5rem);line-height:1.05;letter-spacing:-.045em;text-transform:uppercase;margin:0}
.selected-projects{padding-bottom:3rem}
.project{display:grid;grid-template-columns:44% 56%;background:#171b20;color:#fff}
.project+.project{margin-top:2rem}
.project-details{padding:clamp(1.5rem,2.6vw,2.25rem);min-width:0}
.project-heading{margin-bottom:1.25rem}
.project-heading::before{content:"";display:block;width:48px;height:3px;background:linear-gradient(90deg,var(--blue) 0 75%,var(--red) 75%);margin-bottom:1.25rem}
.project h2{font-family:"Arial Narrow",Arial,sans-serif;font-size:clamp(1.8rem,2.7vw,2.5rem);line-height:1.1;letter-spacing:-.045em;margin:0 0 .9rem}
.project-subtitle{margin:0 0 .65rem;font-size:.85rem;line-height:1.5;font-weight:600;color:#fff}
.project-client{margin:0;color:#fff;font-size:.85rem;font-weight:600}
.project-copy{font-size:.9375rem;line-height:1.6}
.project-copy>p{margin:0;color:#d0d4d9}
.project-copy h3{font-size:.95rem;margin:1.25rem 0 .65rem}
.project-copy ul{margin:0;padding-left:1.1rem;color:#d0d4d9;font-size:.875rem}
.project-copy li{padding:.16rem 0;break-inside:avoid}
.project-copy li::marker{color:#4cafff}
.project-images{display:grid;grid-template-rows:1.1fr 1fr;gap:6px;min-width:0;min-height:640px}
.project-images figure{position:relative;width:100%;margin:0;min-height:0;overflow:hidden}
.project-images img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.project-image-primary img{object-position:43% 85%}
.project-image-supporting img{object-position:50% 85%}
@media(max-width:1100px){.site-header{height:78px}.brand{width:170px}.nav-toggle{display:block}.site-nav{position:fixed;inset:78px 0 0;background:#fff;padding:2rem var(--pad);display:flex;flex-direction:column;align-items:stretch;gap:.5rem;transform:translateX(100%);transition:transform .25s;font-size:1rem;overflow-y:auto;visibility:hidden}.nav-open .site-nav{transform:none;visibility:visible}.site-nav .button{margin-top:1rem}}
@media(max-width:800px){.project{grid-template-columns:1fr}.project-images{min-height:0;grid-template-rows:auto auto}.project-image-primary{height:clamp(220px,62vw,440px)}.project-images .project-image-supporting{width:100%;height:clamp(180px,48vw,320px)}.project-copy ul{columns:2;column-gap:2rem}}
@media(max-width:560px){.projects-intro{padding-block:1.5rem 1rem}.selected-projects{padding-bottom:2rem}.project-details{padding:1.5rem}.project-copy ul{columns:1}}

/* Mobile case studies keep natural landscape photography in normal flow. */
@media(max-width:767px){
  .projects-intro{padding-block:1.5rem 1rem}
  .projects-intro h1{font-size:clamp(1.875rem,4.2vw,2rem)}
  .selected-projects{padding-bottom:2rem}
  .project{display:block;background:#171b20;color:#fff}
  .project-details{padding:1.25rem;min-width:0}
  .project-heading{margin-bottom:1rem}
  .project-heading::before{margin-bottom:1rem}
  .project h2{font-size:1.8rem;line-height:1.15;color:#fff;margin-bottom:.75rem}
  .project-subtitle{color:#fff;font-weight:600;margin-bottom:.5rem}
  .project-client{color:#fff;font-weight:700}
  .project-copy{font-size:.9375rem;line-height:1.6}
  .project-copy>p,.project-copy ul{color:#d0d4d9}
  .project-copy h3{color:#fff;margin:1rem 0 .5rem}
  .project-copy ul{columns:1}
  .project-images{display:flex;flex-direction:column;gap:6px;height:auto;min-height:0;grid-template-rows:none}
  .project-images figure,.project-images .project-image-supporting{position:static;width:100%;height:auto;min-height:0;margin:0}
  .project-images img{position:static;inset:auto;display:block;width:100%;height:auto;max-height:none;aspect-ratio:4 / 3;object-fit:cover}
}

/* Sunshine featured composition and accessible full album. */
.project-sunshine .project-client{font-weight:700}
.sunshine-featured-images{display:grid;grid-template-columns:3fr 2fr;grid-template-rows:1fr 1fr;gap:6px;min-width:0;min-height:640px}
.sunshine-featured-images figure{position:relative;margin:0;min-width:0;min-height:0;overflow:hidden}
.sunshine-featured-images figure:first-child{grid-row:1 / 3}
.sunshine-featured-images img{position:absolute;width:100%;height:100%;object-fit:cover}
.sunshine-featured-images figure:nth-child(2) img{object-position:75% center}
:is(.sunshine-album-button,.milanos-album-button){margin-top:1.75rem;background:var(--blue);border-color:var(--blue);line-height:1.5;animation:album-pulse 3s ease-in-out infinite}
:is(.sunshine-album-button,.milanos-album-button):hover,:is(.sunshine-album-button,.milanos-album-button):focus{animation:none;transform:none;background:#075cad;border-color:#075cad}
:is(.sunshine-album-button,.milanos-album-button):focus-visible,.project-album button:focus-visible{outline:3px solid #fff;outline-offset:4px}
@keyframes album-pulse{0%,100%{box-shadow:0 0 0 0 rgba(55,158,255,.12)}50%{box-shadow:0 0 16px 4px rgba(55,158,255,.32)}}
body.album-open{overflow:hidden}
.project-album{width:min(1100px,calc(100% - 2rem));max-width:none;height:min(900px,calc(100dvh - 2rem));max-height:calc(100dvh - 2rem);padding:1.25rem;border:1px solid #59616a;background:#171b20;color:#fff;overflow:hidden}
.project-album[open]{display:flex;flex-direction:column;gap:1rem}
.project-album::backdrop{background:rgba(0,0,0,.85)}
.album-header,.album-controls{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-shrink:0}
.album-header h2{font-size:1.1rem;line-height:1.3;margin:0}
.project-album button{min-height:48px;padding:.65rem 1rem;border:1px solid #8795a5;background:#263442;color:#fff;cursor:pointer;font-weight:700;flex-shrink:0}
.project-album button:hover{background:#075cad}
.album-slides{flex:1;min-height:0;min-width:0;display:flex}
.album-slide{margin:0;width:100%;height:100%;min-height:0}
.album-slide[hidden]{display:none}
.album-slide img{width:100%;height:100%;object-fit:contain}
.album-count{margin:0;font-size:.875rem;text-align:center}
@media(max-width:800px){.sunshine-featured-images{display:flex;flex-direction:column;min-height:0}.sunshine-featured-images img{position:static;width:100%;height:auto}:is(.sunshine-album-button,.milanos-album-button){width:100%}}
@media(max-width:560px){.project-album{padding:.75rem;width:calc(100% - 1rem);height:calc(100dvh - 1rem);max-height:calc(100dvh - 1rem)}.album-header,.album-controls{gap:.5rem}.project-album button{padding:.65rem .75rem}.album-header h2{font-size:1rem}.album-count{font-size:.8rem}}
@media(prefers-reduced-motion:reduce){:is(.sunshine-album-button,.milanos-album-button){animation:none}}

/* Reversible Projects desktop scale test; tablet and mobile retain their widths. */
@media(min-width:1101px){
  .projects-intro>.container,.container.selected-projects{width:83vw;max-width:1500px}
}

/* Milano’s supporting card uses one hero frame and content-driven height. */
.project-milanos .project-images{display:block;min-height:0}
.project-milanos .project-image-primary{height:100%;min-height:0;aspect-ratio:4 / 3}
@media(min-width:801px){.project-milanos .project-image-primary img{object-position:25% 85%}}
@media(max-width:800px){
  .project-milanos .project-image-primary{height:auto}
  .project-milanos .project-images img{position:static;width:100%;height:auto;aspect-ratio:4 / 3}
}
