/* Architectural, image-led corporate presentation. */
:root{--red:#bf263b;--ink:#202223;--paper:#f2f3f3;--line:#d5d8d9}
header{position:fixed;inset:0 0 auto;height:96px;background:rgba(22,24,25,.9);color:white;border-bottom:1px solid #ffffff25;transition:background .35s,height .35s;backdrop-filter:blur(18px)}
header .nav-contact{border-color:#ffffff55;border-radius:0}header nav a:hover{color:#ff9caa}.brand-logo{width:42px}.brand-small{font-size:10px;letter-spacing:.17em}
.cinematic-hero{position:relative;display:flex;align-items:center;padding:150px 7% 145px;min-height:800px;height:100svh;background:#202223;color:white;isolation:isolate;overflow:hidden}
.hero-scenes{position:absolute;inset:0;z-index:-2}.hero-scene{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 46%;opacity:0;transform:scale(1.035);transition:opacity 1.4s ease,transform 8s linear;filter:brightness(.8)}.hero-scene.is-current{opacity:1;transform:scale(1.11)}.hero-scene:nth-child(2){object-position:center 55%}.hero-scene:nth-child(3){object-position:center 36%}
.cinematic-hero:after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(8,16,20,.8),rgba(8,16,20,.24) 80%),linear-gradient(0deg,rgba(8,16,20,.7),transparent 40%)}
.cinematic-hero .hero-copy{padding:0;max-width:1100px}.cinematic-hero .eyebrow{font-size:13px;letter-spacing:.19em;margin-bottom:30px}.cinematic-hero h1{font-size:clamp(48px,6.8vw,104px);font-weight:400;line-height:1.06;letter-spacing:-.052em}.cinematic-hero h1 span{color:white}.cinematic-hero .intro{color:#f0f0f0;font-size:18px;margin-top:30px;line-height:1.8}.hero-link{display:inline-flex;gap:50px;align-items:center;border-bottom:1px solid #ffffff90;padding:15px 0;margin-top:18px;font-size:16px}.hero-link span{font-size:23px;transition:transform .3s}.hero-link:hover span{transform:translate(3px,-3px)}
.cinematic-hero .hero-bottom{position:absolute;bottom:0;left:7%;right:7%;display:flex;align-items:center;gap:30px;padding:25px 0 30px;border-top:1px solid #ffffff60;color:white;font-size:12px}.hero-caption{display:flex;flex-direction:column;gap:9px;margin-left:auto}.hero-caption span:last-child{letter-spacing:0;color:#ddd;font-size:14px}.scroll-cue{display:flex;gap:22px;align-items:center;font-size:12px}.scroll-cue span{font-size:25px;animation:scroll-cue 2.5s ease-in-out infinite}.hero-controls{display:flex;gap:8px;margin-left:30px}.hero-controls button{padding:12px 10px;background:transparent;color:#fff;border:0;border-bottom:2px solid transparent;font-size:14px}.hero-controls button[aria-pressed=true]{border-bottom-color:#ff687f}.hero-controls button:hover{background:#ffffff18}
@keyframes scroll-cue{50%{transform:translateY(7px)}}
@media(max-width:800px){header{height:78px}.cinematic-hero{min-height:760px;height:100svh;padding:145px 6% 170px}.cinematic-hero h1{font-size:clamp(44px,8vw,70px)}.cinematic-hero .hero-bottom{left:6%;right:6%;flex-wrap:wrap;gap:20px}.hero-caption{margin-left:0;flex:1}.hero-controls{margin:0}.scroll-cue{display:none}.cinematic-hero .eyebrow{font-size:12px}.cinematic-hero .intro{font-size:16px}.hero-scene{object-position:48% center}}
@media(prefers-reduced-motion:reduce){.hero-scene,.hero-scene.is-current{transform:none}.scroll-cue span{animation:none}}
.section{padding:110px 7%;scroll-margin-top:0}h2{font-weight:400;letter-spacing:-.045em}.section-top{grid-template-columns:1fr 2fr}.section-top h2{font-size:clamp(38px,4.8vw,70px)}.section-top .eyebrow{font-size:12px}.text-link{display:inline-flex;align-items:center;justify-content:space-between;gap:40px;border-bottom:1px solid currentColor;padding:14px 0;font-size:16px}.text-link span{transition:transform .3s}.text-link:hover span{transform:translate(3px,-3px)}
.corporate-intro{background:#202223;color:#fff}.corporate-intro>.eyebrow{color:#c4c9cd}.corporate-intro .about-layout{grid-template-columns:1.35fr 1fr;gap:12%;align-items:start}.corporate-intro h2{font-size:clamp(40px,4.5vw,68px);line-height:1.18}.corporate-intro h2 span{color:#a8adb0}.corporate-intro .about-layout p{color:#c5c9cc}.corporate-intro .about-layout .large-copy{color:white;font-size:24px}.corporate-intro .text-link{color:#fff;margin-top:20px}.company-facts{display:grid;grid-template-columns:1fr 1fr 1.4fr;gap:45px;margin-top:85px;padding-top:40px;border-top:1px solid #ffffff35}.company-facts strong{display:block;font-size:clamp(36px,5vw,76px);font-weight:400;letter-spacing:-.045em;line-height:1.1}.company-facts>div:last-child strong{font-size:28px;line-height:1.25}.company-facts span{display:block;color:#b4bbbf;margin-top:18px;font-size:14px}
.visual-expertise{background:#f1f2f2}.expertise-tabs{display:grid;grid-template-columns:repeat(4,1fr);margin:55px 0 45px;border-bottom:1px solid #bcc2c5}.expertise-tabs button{border:0;background:none;display:flex;gap:18px;align-items:center;padding:22px 8px;color:#676d70;font-size:12px;text-align:left;border-bottom:3px solid transparent}.expertise-tabs button span{font-size:20px;color:#404548}.expertise-tabs button[aria-selected=true]{border-color:var(--red);color:var(--red)}.expertise-tabs button[aria-selected=true] span{color:var(--ink)}.expertise-panel{display:grid;grid-template-columns:1.15fr 1fr;gap:9%;align-items:stretch}.expertise-panel>figure{position:relative;min-width:0;overflow:hidden;background:#d5d9dc;height:540px}.expertise-panel>figure img{width:100%;height:100%;object-fit:cover;object-position:center 35%}.expertise-panel>figure:after{position:absolute;content:"";inset:65% 0 0;background:linear-gradient(transparent,#000b);pointer-events:none}.expertise-panel figcaption{font-size:14px;letter-spacing:0;line-height:1.5}.expertise-copy{padding:10px 0;min-width:0}.expertise-controls{display:flex;justify-content:space-between;align-items:center;font-size:14px;color:#777e83}.expertise-controls button{background:transparent;border:1px solid #b1b8bd;border-radius:50%;height:44px;width:44px;margin-left:8px;font-size:22px;color:var(--ink)}.expertise-controls button:hover{background:var(--ink);color:white}.expertise-copy h3{font-size:clamp(30px,3.2vw,48px);line-height:1.14;font-weight:400;margin:40px 0 24px;letter-spacing:-.04em}.expertise-copy p{font-size:17px;line-height:1.8;color:#60686e}.expertise-copy ul{list-style:none;padding:0;margin:22px 0;color:#50575d;font-size:15px;line-height:1.5}.expertise-copy li{border-top:1px solid #cdd2d5;padding:12px 0}.expertise-copy .text-link{margin-top:10px}
.projects{background:#fff}.projects .section-intro{font-size:16px}.projects h2 span{color:#777e82}.portfolio-toolbar{display:flex;justify-content:space-between;align-items:center;gap:22px;border-bottom:1px solid var(--line);margin-top:40px;padding-bottom:20px}.project-filters{display:flex;gap:8px;flex-wrap:wrap}.project-filters button,.view-switch button{background:none;border:1px solid transparent;color:#5b6268;padding:12px 16px;font-size:14px}.project-filters button[aria-pressed=true]{border-color:var(--ink);color:var(--ink)}.project-filters button:hover{background:#f0f2f3}.view-switch{display:flex;border:1px solid #cfd4d7;flex-shrink:0}.view-switch button[aria-pressed=true]{background:var(--ink);color:white}.project-count{font-size:13px;color:#6b7379;margin:20px 0}.gallery-view .project-layout{display:block;margin-top:30px}.gallery-view .map-panel{display:none}.gallery-view .project-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:55px 35px}.project-card[hidden]{display:none!important}.gallery-view .project-card{opacity:1;margin-bottom:0;min-width:0}.gallery-view .project-photo{height:350px;border-radius:0;transition:transform .6s,filter .6s}.gallery-view .project-figure{overflow:hidden}.gallery-view .project-card:hover .project-photo{transform:scale(1.025)}.gallery-view .project-card h3{font-size:29px;margin:18px 0 10px}.gallery-view .project-card>p:not(.record-year){display:none}.gallery-view .project-card .stage-controls{display:none}.gallery-view .stage-label{border-radius:0;bottom:18px;left:18px;font-size:12px}.gallery-view .project-meta{margin-top:20px}.gallery-view .record-card{background:#f1f3f4;border:0;padding:35px;display:flex;flex-direction:column;min-height:300px;justify-content:center}.gallery-view .record-card .record-year{font-size:56px;margin-bottom:20px}.project-card .project-detail-button{display:inline-flex;float:right;border-bottom:1px solid #92999e;padding:10px 0;margin-top:8px;color:var(--ink)}.project-card:after{content:"";display:block;clear:both}.map-view .project-detail-button{float:none;margin-top:15px;display:flex;max-width:150px}.map-view .project-card{opacity:1}.map-view .project-layout{grid-template-columns:1fr 1fr;gap:6%}.map-view .map-panel{top:120px;background:#edf0f2;border-radius:0}.map-view .project-photo{border-radius:0}.map-view .project-count{margin-bottom:0}.map-view .project-card .project-meta{font-size:12px}.map-view .project-filters{visibility:hidden}.project-figure img{display:block}
.contact{border-top:6px solid var(--red);background:#202223}.enquiry-form{border-radius:0}.contact .enquiry-intro h2{font-weight:400}.contact-bottom{padding-top:35px;border-top:1px solid #ffffff30;margin-top:60px}footer{background:#202223;color:#c1c5c8;border-top:1px solid #ffffff30;padding:28px 7%}
.dialog-open{overflow:hidden}#project-dialog{border:0;padding:0;max-width:1050px;width:calc(100% - 60px);max-height:90svh;color:var(--ink);background:#fff;overflow:auto}dialog::backdrop{background:#10181bdd;backdrop-filter:blur(8px)}.dialog-close{position:sticky;top:18px;float:right;margin:18px 20px -62px 0;z-index:2;background:#202223;color:white;border:1px solid #ffffff40;padding:12px 20px;font-size:14px}.detail-copy{padding:45px 6%}.detail-copy .eyebrow{color:var(--red);margin-bottom:20px}.detail-copy h2{font-size:clamp(30px,4vw,50px)}#detail-content>figure{height:410px;background:#e3e7e9}#detail-content>figure img{width:100%;height:100%;object-fit:contain}.detail-copy>p{font-size:17px;line-height:1.8;color:#5d666c}.detail-copy dl{display:flex;gap:65px;margin:35px 0;border-block:1px solid #d5dbde;padding:25px 0}.detail-copy dt{font-size:12px;text-transform:uppercase;letter-spacing:.1em;color:#687177}.detail-copy dd{margin:10px 0 0;font-size:17px}.detail-pair{display:grid;grid-template-columns:1fr 1fr;gap:20px}.detail-pair img{width:100%;height:230px;object-fit:cover}.detail-pair figcaption{position:static;color:var(--ink);font-size:14px;padding:10px 0}.detail-copy .photo-note{font-size:12px}.menu-button{background:none;border:0;color:white;font-size:14px;margin-left:30px;padding:12px 0;white-space:nowrap}header nav{margin-left:auto}.site-menu{position:fixed;inset:0;margin:0;width:100%;max-width:none;height:100svh;max-height:none;background:#202223;color:#fff;border:0;padding:8%}.site-menu .menu-close{position:absolute;right:7%;top:35px;background:none;color:white;border:1px solid #ffffff55;padding:13px 20px;font-size:15px}.site-menu nav{display:flex;align-items:flex-start;flex-direction:column;gap:25px;font-size:clamp(30px,5vw,65px);margin:65px 0 70px}.site-menu nav a{display:block!important;letter-spacing:-.04em}.site-menu p{font-size:16px;line-height:1.8;color:#bcc3c7}.site-menu nav a:hover{color:#ff7d92}
@media(max-width:1100px){.expertise-panel{gap:5%}.expertise-panel>figure{height:510px}.expertise-tabs button span{font-size:18px}.gallery-view .project-photo{height:300px}.portfolio-toolbar{align-items:flex-start;flex-direction:column}header nav{gap:24px}.company-facts{gap:30px}.company-facts>div:last-child strong{font-size:24px}}
@media(max-width:800px){.section{padding:75px 6%}.section-top{grid-template-columns:1fr;gap:24px}.section-intro{grid-column:1}.section-top h2{font-size:40px}.corporate-intro .about-layout{grid-template-columns:1fr;gap:35px}.corporate-intro h2{font-size:42px}.company-facts{grid-template-columns:1fr 1fr;gap:35px;margin-top:45px}.company-facts>div:last-child{grid-column:1/-1}.company-facts strong{font-size:46px}.expertise-tabs{grid-template-columns:repeat(2,1fr);margin:35px 0}.expertise-tabs button{padding:16px 5px}.expertise-panel{grid-template-columns:1fr;gap:30px}.expertise-panel>figure{height:370px}.expertise-copy h3{margin-top:25px}.gallery-view .project-list{gap:45px 20px}.gallery-view .project-photo{height:250px}.gallery-view .project-card h3{font-size:25px}.project-card .project-detail-button{float:none;display:flex;max-width:145px}.map-view .project-layout{grid-template-columns:1fr}.map-view .map-panel{top:0}.map-view .project-filters{display:none}.portfolio-toolbar{margin-top:30px}.project-filters button{padding:11px 12px}.site-menu nav{margin-left:0}.menu-button{margin-left:18px}header nav a{display:none!important}header nav .nav-contact{display:block!important}.company-facts span{line-height:1.5}.detail-copy dl{gap:25px}.detail-pair{grid-template-columns:1fr}.detail-pair img{height:auto}#detail-content>figure{height:300px}#project-dialog{width:calc(100% - 24px)}.dialog-close{top:10px;margin-right:10px}.detail-copy{padding:35px 7%}}
@media(max-width:550px){.gallery-view .project-list{grid-template-columns:1fr}.gallery-view .project-photo{height:300px}.expertise-panel>figure{height:330px}.hero-controls{gap:4px}.hero-controls button{padding:10px 8px}.hero-caption span:last-child{font-size:12px;max-width:160px;line-height:1.4}.company-facts strong{font-size:38px}.section-top h2{font-size:36px}header .nav-contact{font-size:12px;padding:10px}.brand{font-size:13px}.brand-small{font-size:8px}header{padding-inline:5%}.brand-logo{width:32px}.menu-button{font-size:13px;margin-left:12px}.cinematic-hero h1{font-size:clamp(39px,9.8vw,52px)}.cinematic-hero .eyebrow{font-size:11px;letter-spacing:.12em}.cinematic-hero{min-height:720px}.hero-copy{max-width:100%}}
@media(prefers-reduced-motion:reduce){.gallery-view .project-card:hover .project-photo{transform:none}}
/* Portrait interior records are paired so desks, ceilings and flooring remain visible. */
.hero-scene:first-child{object-position:center 55%}.hero-scene:nth-child(2){object-position:center 36%}
.interior-pair{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:minmax(0,1fr);gap:6px;overflow:hidden}
.interior-pair>img{min-height:0;max-height:100%;align-self:stretch}
.expertise-panel>figure.interior-pair{height:540px;background:#dce0e2}
.expertise-panel>figure.interior-pair img{min-width:0;width:100%;height:100%;object-fit:cover;object-position:center 52%}
.project-figure.interior-pair .project-photo{width:100%;min-width:0;object-position:center 52%;object-fit:cover;height:420px}
#detail-content>figure.interior-pair{height:540px;background:#e7eaec;gap:10px}
#detail-content>figure.interior-pair img{min-width:0;width:100%;height:100%;object-fit:contain}
#project-rhb .project-photo{object-fit:cover}
.client-section{background:#fff;color:#171b20;border-top:1px solid #e2e5e8}
.client-logo[data-client="tgv"],.client-logo[data-client="tgv"]:hover{background:#d71920}.client-logo[data-client="tgv"] figcaption{color:#fff}
.client-logo[data-client="kantan-kollektiv"] img{height:104px}.client-logo[data-client="royal-selangor-club"] img{max-width:230px}
.client-heading{display:grid;grid-template-columns:1.5fr 1fr;gap:24px 60px;align-items:start}
.client-heading .eyebrow{grid-column:1/-1}.client-heading h2{font-size:clamp(2.2rem,4.5vw,4.8rem);line-height:1.08;margin:0;letter-spacing:-.04em}.client-heading>p:last-child{max-width:430px;justify-self:end;font-size:1.125rem;line-height:1.7;color:#58616b}
.client-logo-grid{display:grid;grid-template-columns:repeat(4,1fr);margin-top:64px;border-top:1px solid #e2e5e8;border-bottom:1px solid #e2e5e8}
.client-logo{margin:0;min-height:210px;padding:42px 26px;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:22px;border-right:1px solid #e2e5e8;transition:background .3s ease}.client-logo:last-child{border-right:0}.client-logo:hover{background:#f6f7f8}.client-logo img{width:100%;max-width:190px;height:76px;object-fit:contain;transition:transform .3s ease}.client-logo:hover img{transform:translateY(-4px)}.client-logo figcaption{font-size:.875rem;color:#616a73;text-align:center}
.client-directory{margin-top:30px;border-bottom:1px solid #e2e5e8;padding-bottom:24px}.client-directory summary{font-size:1rem;cursor:pointer;display:flex;justify-content:space-between;padding:12px 0}.client-directory summary span{font-size:1.5rem}.client-directory[open] summary span{transform:rotate(45deg)}.client-directory ul{display:grid;grid-template-columns:1fr 1fr;gap:20px 40px;list-style:none;padding:24px 0 0;margin:0;color:#58616b;font-size:1rem;line-height:1.6}
@media(max-width:800px){.client-heading{grid-template-columns:1fr}.client-heading>p:last-child{justify-self:start}.client-logo-grid{grid-template-columns:repeat(2,1fr);margin-top:35px}.client-logo{min-height:180px}.client-logo:nth-child(2){border-right:0}.client-logo:nth-child(-n+2){border-bottom:1px solid #e2e5e8}.client-directory ul{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){.client-logo,.client-logo img{transition:none}.client-logo:hover img{transform:none}}
.client-logo{border-bottom:1px solid #e2e5e8;min-width:0}.client-logo:nth-child(4n){border-right:0}.client-logo-grid{border-bottom:0}.client-logo figcaption{display:block;position:static;background:none;padding:0;line-height:1.5}.client-name{display:flex;align-items:center;justify-content:center;min-height:76px;font-size:1.55rem;line-height:1.25;text-align:center;font-weight:600;color:#333d47}
.client-group-heading{margin-top:72px;max-width:760px}.client-group-heading h3{font-size:clamp(1.5rem,2.5vw,2.2rem);line-height:1.2;margin:0 0 16px;letter-spacing:-.025em}.client-group-heading p{font-size:1rem;line-height:1.7;color:#58616b;margin:0}.historical-client-grid,.collaborator-grid{margin-top:32px}.historical-client-grid .client-name{font-size:1.15rem;line-height:1.5}.historical-client-grid .client-logo{min-height:160px;padding:28px 22px}.project-brand-directory{list-style:none;margin:32px 0 0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 32px}.project-brand-directory li{padding:20px 0;border-bottom:1px solid #e2e5e8;font-size:1rem;line-height:1.5;overflow-wrap:anywhere}.client-name,.client-logo figcaption{overflow-wrap:anywhere}.collaborator-grid{grid-template-columns:repeat(4,minmax(0,1fr))}@media(max-width:800px){.project-brand-directory{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 20px}.collaborator-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.client-group-heading{margin-top:48px}}@media(max-width:420px){.client-logo{padding:24px 12px}.historical-client-grid .client-logo{padding:24px 12px}.historical-client-grid .client-name{font-size:1rem}}
@media(max-width:800px){.client-logo:nth-child(2n){border-right:0}.client-logo{padding:28px 18px}.client-name{font-size:1.2rem}}
@media(max-width:800px){.expertise-panel>figure.interior-pair{height:450px}.project-figure.interior-pair .project-photo{height:320px}}
@media(max-width:550px){.expertise-panel>figure.interior-pair{height:355px}.project-figure.interior-pair .project-photo{height:355px}#detail-content>figure.interior-pair{height:390px}}
