:root{--black:#080808;--white:#fff;--gray:#707070;--line:#dedede}*{box-sizing:border-box}body{margin:0;background:var(--white);color:var(--black);font-family:Arial,Helvetica,sans-serif;font-size:14px;line-height:1.7}html{scroll-behavior:smooth;scroll-padding-top:30px}button,input,select,textarea{font:inherit}a{color:inherit;text-decoration:none}header{height:110px;background:var(--black);color:white;display:flex;justify-content:space-between;align-items:center;padding:0 6%}.brand{display:block;width:170px;height:78px;overflow:hidden}.brand img{width:170px;height:170px;object-fit:cover;transform:translateY(-46px)}nav{display:flex;gap:35px;align-items:center;font-size:12px}.button{display:inline-flex;align-items:center;justify-content:space-between;gap:40px;padding:17px 25px;font-size:11px;font-weight:bold;letter-spacing:.7px;border:1px solid transparent;cursor:pointer}.outline{border-color:#555;background:transparent;color:white}.white{background:white;color:black}.black{background:black;color:white}.menu{display:none}.hero{display:grid;grid-template-columns:1.08fr 1fr;background:var(--black);color:white;min-height:720px}.hero-text{padding:90px 9% 30px 11%;display:flex;flex-direction:column;align-items:flex-start}.eyebrow{font-size:9px;letter-spacing:2px;font-weight:600;margin:0 0 32px}h1,h2,h3{line-height:1.03;font-weight:700;margin:0}h1{font-size:clamp(50px,5.5vw,82px);letter-spacing:-3px}h1 span{color:#fff}h2{font-size:clamp(32px,3.7vw,53px);letter-spacing:-1.8px}h3{font-size:18px;letter-spacing:-.3px}.hero-text>p:not(.eyebrow){color:#aaa;margin:28px 0 35px;font-size:15px}.hero-meta{display:flex;justify-content:space-between;gap:25px;font-size:8px;letter-spacing:1.3px;color:#aaa;width:100%;padding-top:60px;margin-top:auto}.hero-photo{position:relative;min-height:720px;overflow:hidden}.hero-photo>img{width:100%;height:100%;position:absolute;object-fit:cover;object-position:center 45%}.photo-tag{position:absolute;top:25px;left:28px;color:white;font-size:8px;letter-spacing:1.6px;text-shadow:0 1px 7px #000}.ticker{display:flex;justify-content:space-around;gap:20px;padding:29px 6%;border-bottom:1px solid var(--line);font-size:10px;letter-spacing:2px}.ticker b{font-weight:400;font-size:18px;line-height:1}.section{padding:100px 7%;max-width:1700px;margin:auto}.section-head{display:flex;justify-content:space-between;gap:35px;align-items:end;margin-bottom:35px}.section-head>p{max-width:300px;color:var(--gray);font-size:13px}.filters{display:flex;gap:25px;border-bottom:1px solid var(--line);margin-bottom:35px}.filters button{border:0;border-bottom:2px solid transparent;background:none;font-size:11px;color:#777;padding:15px 0;cursor:pointer}.filters .active{border-bottom-color:#000;color:#000}.gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px 23px}.project{border:0;background:none;text-align:left;padding:0;cursor:pointer;color:#000;min-width:0}.project img{display:block;aspect-ratio:3/4;width:100%;object-fit:cover;transition:filter .3s}.project span{display:block;margin-top:15px}.project small{font-size:8px;letter-spacing:1.7px;color:#777}.project b{display:block;font-size:14px;font-weight:500;margin-top:5px}.project i{float:right;font-style:normal;font-size:20px}.gallery-note{font-size:10px;color:#888;margin-top:28px}.services{display:grid;grid-template-columns:1fr 1.1fr;gap:12%;background:#f3f3f3}.services>div>p:not(.eyebrow){color:#666;max-width:300px;margin-top:25px}.text-link{display:inline-block;border-bottom:1px solid black;padding:5px 0;margin-top:15px;font-size:11px}.service-list article{display:flex;gap:25px;border-top:1px solid #ccc;padding:27px 0}.service-list article:first-child{padding-top:0;border-top:0}.service-list article>span{font-size:9px;color:#888}.service-list p{margin:12px 0 0;color:#666;font-size:12px}.about{display:grid;grid-template-columns:1fr 1fr;gap:10%;align-items:center}.about-photo{height:580px;overflow:hidden}.about-photo img{width:100%;height:100%;object-fit:cover}.about>div>p:not(.eyebrow){color:#666;margin:25px 0 0}.values{display:flex;flex-wrap:wrap;gap:22px;font-size:8px;letter-spacing:1.4px;margin-top:35px;padding-top:25px;border-top:1px solid var(--line)}.builders{background:black;color:white}.builders>.eyebrow{color:#aaa}.builders>div{display:grid;grid-template-columns:1.1fr 1fr;gap:10%}.builders p{color:#aaa;max-width:420px;margin:0}.builders .button{display:flex;width:max-content;margin-top:30px}.contact{display:grid;grid-template-columns:1fr 1fr;gap:10%}.contact>div>p:not(.eyebrow){max-width:340px;color:#666;margin-top:28px}.contact .region{font-size:10px;letter-spacing:1px;border-top:1px solid var(--line);padding-top:25px;margin-top:45px}.contact .note{font-size:10px}label{display:block;font-size:10px;margin-bottom:18px}input,textarea,select{display:block;width:100%;margin-top:9px;padding:13px;border:1px solid #ccc;background:white;color:black;border-radius:0;font-size:12px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:20px}textarea{resize:vertical}form .button{width:100%}#form-status{font-size:10px;color:#777}footer{background:black;color:white;padding:30px 6%;display:flex;align-items:center;justify-content:space-between;gap:20px;font-size:8px;letter-spacing:1px}dialog{padding:0;border:0;background:#080808;color:white;max-width:95vw;width:900px;max-height:95vh;overflow:auto}dialog::backdrop{background:#000d}dialog>img{display:block;max-height:80vh;max-width:100%;width:auto;margin:auto;object-fit:contain}.close{position:absolute;right:15px;top:15px;background:black;color:white;border:1px solid #777;width:40px;height:40px;cursor:pointer}.lightbox-bottom{display:flex;justify-content:space-between;align-items:center;padding:15px 25px;gap:15px;font-size:12px}.lightbox-bottom button{background:none;color:white;border:1px solid #555;padding:10px 15px;cursor:pointer}[hidden]{display:none!important}a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid #999;outline-offset:4px}@media(max-width:900px){header{height:90px}.brand{width:145px;height:70px}.brand img{width:145px;height:145px;transform:translateY(-37px)}nav{gap:20px}.hero{grid-template-columns:1fr 1fr;min-height:650px}.hero-photo{min-height:650px}.hero-text{padding-top:65px}h1{font-size:51px}.hero-meta{flex-direction:column;gap:10px}.gallery{grid-template-columns:repeat(2,minmax(0,1fr))}.section{padding:70px 6%}.services{gap:7%}.about{gap:7%}.about-photo{height:490px}}@media(max-width:650px){header{height:85px}nav{display:none;position:absolute;top:85px;left:0;right:0;z-index:10;background:black;padding:25px;flex-direction:column;gap:20px}nav.open{display:flex}.menu{display:block;color:white;background:none;border:0;font-size:10px;letter-spacing:1px}.hero{grid-template-columns:1fr}.hero-text{padding:55px 7% 35px}h1{font-size:clamp(49px,12vw,74px)}.hero-text>p:not(.eyebrow){font-size:13px}.hero-meta{padding-top:35px;flex-direction:row;gap:15px;font-size:7px}.hero-photo{min-height:520px}.ticker{flex-wrap:wrap;gap:10px;font-size:7px;letter-spacing:1px;padding:22px 4%}.ticker b{font-size:12px}.section{padding:60px 6%}.section-head{display:block}.section-head>p{max-width:100%;margin-top:25px}.filters{gap:20px;overflow-x:auto;white-space:nowrap}.filters button{font-size:10px}.gallery{gap:25px 14px}.project b{font-size:12px;line-height:1.4}.project small{font-size:7px}.project i{font-size:15px}.services,.about,.contact,.builders>div{grid-template-columns:1fr;gap:35px}.service-list article:first-child{border-top:1px solid #ccc;padding-top:27px}.about-photo{height:450px}.values{gap:18px}footer{flex-wrap:wrap}footer>.brand{width:100%;height:70px}footer>.brand img{width:145px}.lightbox-bottom{font-size:10px;padding:12px}.form-row{gap:14px}h2{font-size:36px}.eyebrow{margin-bottom:25px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.project img{transition:none}}

/* One exact logo asset, one size and inset rule for every photograph. */
.photo-frame{position:relative;display:block!important;margin:0!important;isolation:isolate;overflow:hidden}.photo-frame>img{display:block;width:100%;aspect-ratio:3/4;object-fit:cover}.photo-frame .photo-logo,.hero-photo .photo-logo,.about-photo .photo-logo,.lightbox-photo .photo-logo{position:absolute;display:block!important;right:3%;bottom:3%;width:16%;aspect-ratio:540/220;overflow:hidden;margin:0!important;z-index:2;mix-blend-mode:screen;pointer-events:none}.photo-logo img{position:absolute!important;width:118.52%!important;height:auto!important;max-height:none!important;max-width:none!important;aspect-ratio:1!important;left:-9.26%!important;top:-100%!important;object-fit:contain!important;transform:none!important;filter:none!important;margin:0!important}.hero-photo,.about-photo{isolation:isolate}.about-photo{position:relative}.lightbox-photo{position:relative;width:max-content;max-width:100%;margin:auto;isolation:isolate}.lightbox-photo>.full-photo{display:block;max-height:80vh;max-width:100%;width:auto;object-fit:contain;margin:auto}.project:hover .photo-logo img{filter:none}.close{z-index:5}

/* Subtle shared colour treatment; retain captured light levels. */
.photo-frame>img,.hero-photo>img,.about-photo>img,.lightbox-photo>.full-photo{filter:saturate(.97) contrast(1.015)}

.arrow-icon{width:18px;height:18px;display:inline-block;vertical-align:middle;flex-shrink:0}.project i{display:flex;align-items:center;justify-content:center;line-height:1}.project i .arrow-icon{width:18px;height:18px}

/* Why UPJ: real capabilities, in the existing black and white identity. */
.why-upj{border-top:1px solid var(--line)}
.why-upj .section-head>p{max-width:340px}
.why-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 65px}
.why-grid article{padding:32px 0 34px;border-top:1px solid var(--line)}
.why-number{display:block;font-size:9px;letter-spacing:1.6px;color:#707070;margin-bottom:18px}
.why-grid h3{font-size:23px;line-height:1.2}
.why-grid p{max-width:470px;color:#666;font-size:13px;margin:16px 0 0}
.system-detail{margin-top:25px;padding:35px;background:#f3f3f3;display:grid;grid-template-columns:1fr 1.2fr;gap:50px;align-items:center}
.system-detail .eyebrow{margin-bottom:16px}
.system-detail h3{font-size:21px;line-height:1.2}
.system-detail>div>p:not(.eyebrow):not(.record-label):not(.site-hierarchy){color:#666;font-size:12px;margin:14px 0 0}
.record-label{font-size:8px;letter-spacing:1.5px;color:#707070;margin:0 0 14px}
.site-hierarchy{font-size:14px;line-height:2;margin:0 0 18px}.site-hierarchy span{color:#aaa;padding:0 7px}
.record-tags{display:flex;gap:8px;flex-wrap:wrap}.record-tags span{padding:7px 10px;border:1px solid #ccc;font-size:9px;line-height:1.4}
@media(min-width:651px) and (max-width:1050px){nav{gap:16px}.why-grid{gap:0 35px}.system-detail{gap:30px}}
@media(max-width:650px){.why-grid{grid-template-columns:1fr}.why-grid article{padding:27px 0}.why-grid h3{font-size:21px}.system-detail{grid-template-columns:1fr;gap:28px;padding:25px 22px}.site-hierarchy{font-size:12px}.site-hierarchy span{padding:0 3px}}

/* The real UPJ team, paired in one photographic feature. */
.why-grid{grid-template-columns:repeat(3,minmax(0,1fr));column-gap:35px}
.why-grid .team-feature{grid-column:1/-1;display:grid;grid-template-columns:1.3fr 1fr;gap:55px;align-items:center;padding:32px 0 40px}
.team-photo{margin:0;min-width:0;overflow:hidden;background:#eee}
.team-photo>img{display:block;width:100%;height:auto;aspect-ratio:3/2;object-fit:contain}
.team-copy{padding:15px 0}.why-grid .team-copy h3{font-size:clamp(25px,2.7vw,38px);line-height:1.12;letter-spacing:-1px}
.team-caption{display:block;font-size:9px;letter-spacing:1.6px;margin-top:25px;color:#707070}
@media(max-width:900px){.why-grid .team-feature{gap:30px}.why-grid{column-gap:25px}.why-grid h3{font-size:21px}}
@media(max-width:650px){.why-grid{grid-template-columns:1fr}.why-grid .team-feature{grid-template-columns:1fr;gap:24px;padding:27px 0}.team-copy{padding:0}.why-grid .team-copy h3{font-size:27px}.team-caption{margin-top:20px}}

/* Real system captures presented as a restrained editorial feature. */
.why-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.why-grid .system-feature{grid-column:1/-1;display:grid;grid-template-columns:.8fr 1.35fr;gap:50px;align-items:center;padding:45px 0 50px}
.why-grid .system-copy h3{font-size:clamp(25px,2.7vw,38px);line-height:1.12;letter-spacing:-1px}
.system-capabilities{display:flex;flex-wrap:wrap;gap:8px;margin-top:22px}.system-capabilities span{border:1px solid #ccc;padding:6px 9px;font-size:9px;line-height:1.5}
.system-showcase{min-width:0;padding:25px;background:#efefed;display:grid;gap:18px}
.system-screen{min-width:0;margin:0;background:white;border:1px solid #d3d3d3;box-shadow:0 8px 22px #0000000a;overflow:hidden}
.system-screen figcaption{display:flex;align-items:center;gap:8px;padding:10px 12px;border-bottom:1px solid #ddd;color:#555;font-size:8px;letter-spacing:1px;line-height:1.4}
.screen-dot{width:5px;height:5px;border-radius:50%;background:#222;flex-shrink:0}
.system-screen img{display:block;width:100%;height:auto}
.screen-production{width:77%;justify-self:end}
@media(max-width:900px){.why-grid .system-feature{gap:30px;grid-template-columns:.85fr 1.2fr}.system-showcase{padding:16px}}
@media(max-width:650px){.why-grid{grid-template-columns:1fr}.why-grid .system-feature{grid-template-columns:1fr;gap:26px;padding:30px 0}.why-grid .system-copy h3{font-size:27px}.system-showcase{padding:12px;gap:14px}.screen-production{width:90%}.system-screen figcaption{font-size:7px;padding:8px}}

/* Three real installation moments, retaining the existing paired photograph. */
.why-grid .team-feature{grid-template-columns:1.75fr 1fr;gap:40px}
.team-photo-three{display:grid;grid-template-columns:2fr 1fr;gap:4px;background:#080808;align-items:stretch}
.team-photo-three>img{width:100%;height:100%;aspect-ratio:auto;object-fit:cover;min-width:0}
.team-photo-three>.team-pair{aspect-ratio:3/2}.team-photo-three>.team-third{aspect-ratio:3/4;object-position:center}
@media(max-width:900px){.why-grid .team-feature{grid-template-columns:1fr;gap:25px}.team-copy{max-width:650px}}
@media(max-width:500px){.team-photo-three{grid-template-columns:1fr;background:transparent;gap:12px}.team-photo-three>.team-third{width:72%;height:auto;justify-self:center;object-fit:contain}.team-photo-three>.team-pair{height:auto}}

.why-grid .coordination-feature{grid-column:1/-1}.why-grid .coordination-feature p{max-width:720px}

.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}

.contact-details{margin-top:32px;max-width:420px}.contact-entry{border-top:1px solid var(--line);padding:20px 0}.contact-label{display:block;font-size:9px;letter-spacing:1.5px;color:#707070;margin-bottom:12px}.contact-phone{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:8px 0;font-size:14px;min-height:44px}.contact-phone strong{font-size:18px;font-weight:500;white-space:nowrap}.contact-phone:hover strong{text-decoration:underline;text-underline-offset:4px}.contact-entry address{font-style:normal;font-size:14px;line-height:1.8}.contact-map{display:inline-block;font-size:11px;margin-top:10px;text-decoration:underline;text-underline-offset:4px}.contact-entry p{margin:0;font-size:13px}.contact-entry p strong{display:inline-block;margin-left:14px;font-weight:500}.contact .note{max-width:420px!important}
@media(max-width:650px){.contact-details{max-width:none}.contact-phone strong{font-size:19px}.contact-entry p strong{margin-left:10px}}
