@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@400;500;600;700;800&display=swap');:root{--bg:#0D0D0D;--bg2:#1C1C1C;--gold:#D5AB64;--white:#F4F4F2;--muted:#D5D5D5}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--white);font-family:'DM Sans',Arial,sans-serif}a{color:inherit;text-decoration:none}button{font:inherit}.container{width:min(1320px,calc(100% - 100px));margin:auto}.micro{font-size:11px;font-weight:700;letter-spacing:.2em;color:var(--gold);text-transform:uppercase}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-family:Manrope,Arial,sans-serif}h1{font-size:clamp(44px,5.1vw,78px);line-height:1.09;letter-spacing:-.055em}h2{font-size:clamp(30px,3.65vw,56px);line-height:1.16;letter-spacing:-.05em;font-weight:600}h3{letter-spacing:-.035em}em{color:var(--gold);font-style:normal}.header{position:relative;z-index:20;display:flex;align-items:center;justify-content:space-between;padding:14px max(50px,calc((100vw - 1320px)/2));background:#0D0D0D;min-height:72px}.header img{width:172px;height:auto;display:block}.nav{display:flex;align-items:center;gap:28px}.nav a{font-size:12px;color:#F4F4F2;transition:color .2s}.nav a:hover,.text-link:hover{color:var(--gold)}.menu-toggle{display:none}.hero{height:min(68vh,650px);min-height:470px;position:relative;display:flex;align-items:center;overflow:hidden}.hero video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.hero-overlay{position:absolute;inset:0;background:linear-gradient(90deg,rgba(5,8,9,.78),rgba(5,8,9,.30) 78%),linear-gradient(0deg,rgba(6,8,9,.48),transparent 50%)}.hero-copy{position:relative;padding-top:15px}.hero h1{max-width:890px;margin:22px 0 16px}.hero p{font-size:16px;color:#F4F4F2;line-height:1.55;margin-bottom:24px}.button{display:inline-flex;align-items:center;gap:30px;justify-content:space-between;padding:15px 21px;background:var(--gold);color:#0D0D0D;font-size:12px;font-weight:700;letter-spacing:.04em}.button:hover{background:#D5AB64}.outlined{border:1px solid var(--gold);color:var(--white);background:transparent}.outlined:hover{background:var(--gold);color:#0D0D0D}.section{padding:98px 0}.section-alt{background:var(--bg2)}.split{display:grid;grid-template-columns:1fr 1fr;gap:90px;align-items:start}.split h2{margin-top:22px}.body-lg p{color:#D5D5D5;font-size:17px;line-height:1.8}.text-link{display:inline-block;margin-top:15px;padding-bottom:8px;border-bottom:1px solid var(--gold);font-size:13px}.section-title{display:flex;justify-content:space-between;align-items:end;gap:40px;margin-bottom:37px}.section-title h2{margin:14px 0 0}.section-title>p{max-width:370px;color:var(--muted);line-height:1.75;font-size:15px}.project-grid{display:grid;grid-template-columns:1fr 1fr;gap:45px 26px}.photo-frame{background:#1C1C1C;display:flex;align-items:center;justify-content:center;height:320px;padding:10px}.photo-frame img{display:block;width:100%;height:100%;object-fit:contain}.project-meta{display:flex;justify-content:space-between;gap:16px;font-size:10px;color:var(--gold);text-transform:uppercase;letter-spacing:.08em;margin-top:15px}.project-card h3{font-size:23px;margin:12px 0 7px}.project-card p{font-size:13px;color:var(--muted)}.center-button{margin-top:35px}.service-grid{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid #A87D3D;margin-top:32px}.service-grid>*{padding:27px 20px 12px;border-right:1px solid #A87D3D}.service-grid>*:last-child{border:0}.service-grid b{color:var(--gold);font-size:11px}.service-grid h3{font-size:19px;margin:24px 0 10px}.service-grid p{color:var(--muted);font-size:13px;line-height:1.7}.banner{padding:105px 0;text-align:center;background:linear-gradient(#0D0D0Dd9,#0D0D0De0),url('../assets/campus-city.jpg') center / cover}.banner h2{margin:20px 0}.banner p{color:var(--muted)}.banner .button{margin-top:20px}.footer{padding:70px 0 25px;background:#0D0D0D}.footer-grid{display:grid;grid-template-columns:2fr 1fr 1.6fr;gap:70px}.footer-logo{width:180px;display:block;margin-bottom:19px}.footer p,.footer a{display:block;color:var(--muted);font-size:13px;line-height:1.8;margin:0 0 10px}.footer .micro{margin-bottom:17px}.copyright{border-top:1px solid #1C1C1C;margin-top:40px;padding-top:22px;color:#AAAAAA;font-size:11px}.page-head{background:linear-gradient(100deg,#0D0D0Dee,#0D0D0Dbd),url('../assets/campus-city.jpg') center / cover;padding:106px 0 88px}.page-head h1{margin:19px 0 13px}.page-head p{color:#F4F4F2;font-size:16px;max-width:700px;line-height:1.7}.project-story{margin-top:45px;margin-bottom:90px;border-top:1px solid #A87D3D;padding-top:34px;scroll-margin-top:20px}.project-story-head{display:grid;grid-template-columns:1fr 1fr;gap:65px;margin-bottom:25px}.project-story-head h3{font-size:clamp(24px,2.8vw,38px);margin:12px 0}.project-story-head p{line-height:1.75;color:var(--muted);font-size:15px}.project-story-head .location{color:var(--gold);font-size:13px}.gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;align-items:center}.gallery figure{margin:0;min-height:250px;display:flex;align-items:center;justify-content:center;background:#1C1C1C;padding:8px}.gallery img{width:100%;height:auto;max-height:390px;object-fit:contain;display:block}.service-list{display:grid;grid-template-columns:1fr 1fr;gap:40px}.service-list article{border-top:1px solid #A87D3D;padding-top:23px;scroll-margin-top:30px}.service-list h2{font-size:26px}.service-list p,.centered p,.contact-panel p{color:var(--muted);line-height:1.7}.centered{text-align:center;max-width:800px}.centered h2{margin-top:20px}.centered .button{margin-top:18px}.leaders{display:grid;grid-template-columns:repeat(4,1fr);gap:22px;margin-top:34px}.leader-placeholder{height:250px;background:#1C1C1C;color:#606060;display:grid;place-items:center;font-size:12px}.leader h3{margin:17px 0 5px}.leader p,.subtle{color:var(--muted);font-size:13px}.contact-panel{border:1px solid #A87D3D;padding:38px}.contact-panel .button{margin-top:12px}@media(max-width:950px){.container{width:calc(100% - 50px)}.header{padding-left:25px;padding-right:25px}.nav{gap:14px}.nav a{font-size:11px}.split{gap:40px}.service-grid,.leaders{grid-template-columns:repeat(2,1fr)}.gallery figure{min-height:170px}}@media(max-width:680px){.header{padding:15px 20px}.header img{width:145px}.menu-toggle{display:block;background:none;border:1px solid #A87D3D;color:#F4F4F2;padding:7px 10px}.nav{display:none;position:absolute;top:100%;left:0;right:0;background:#0D0D0D;padding:23px;flex-direction:column;align-items:flex-start}.nav.open{display:flex}.nav a{font-size:15px;padding:7px}.container{width:calc(100% - 38px)}.hero{height:auto;min-height:440px;padding:70px 0}.hero h1{font-size:clamp(38px,9vw,58px)}.hero p{font-size:13px}.section{padding:65px 0}.split,.project-story-head,.service-list,.footer-grid{grid-template-columns:1fr;gap:23px}.section-title{display:block}.project-grid{grid-template-columns:1fr;gap:30px}.photo-frame{height:255px}.service-grid{grid-template-columns:1fr}.service-grid>*{border-right:0;border-bottom:1px solid #A87D3D;padding-left:0}.gallery{grid-template-columns:1fr}.gallery figure{min-height:unset}.gallery img{max-height:none}.leaders{grid-template-columns:1fr 1fr}.leader-placeholder{height:160px}.page-head{padding:75px 0 60px}}

/* Media framing correction: no cropping, zooming, stretching or cut-off. */
.hero {height:clamp(390px, 38vw, 540px);min-height:0; overflow:hidden; background:#0D0D0D;}
.hero video {position:absolute;inset:0;width:100%;height:100%;object-fit:contain;object-position:center;transform:none!important;}
.hero-overlay {pointer-events:none;background:linear-gradient(90deg,rgba(5,8,9,.68),rgba(5,8,9,.24) 70%,rgba(5,8,9,.1));}
.hero-copy {z-index:2;}
.hero h1{font-size:clamp(36px,4.1vw,62px);line-height:1.12;max-width:880px;}
/* Background photographs now rendered as complete photos, never cover crops. */
.banner,.page-head{background-image:none!important;background-color:#0D0D0D;position:relative;isolation:isolate;overflow:hidden;}
.banner::before,.page-head::before{content:'';position:absolute;inset:0;background-image:url('../assets/campus-city.jpg');background-repeat:no-repeat;background-position:center;background-size:contain;z-index:-2;}
.banner::after,.page-head::after{content:'';position:absolute;inset:0;background:rgba(8,11,12,.6);z-index:-1;}
.page-head{min-height:310px;display:flex;align-items:center;}
.page-head .container{position:relative;z-index:1;}
.banner{min-height:355px;display:flex;align-items:center;justify-content:center;}
.banner>.container{position:relative;z-index:1;}
.photo-frame{height:auto;min-height:0;aspect-ratio: 4 / 3;overflow:hidden;padding:12px;}
.photo-frame img{width:100%;height:100%;object-fit:contain!important;object-position:center;transform:none!important;}
.gallery figure{min-height:0;height:auto;padding:10px;}
.gallery img{width:100%;height:auto;max-height:none;object-fit:contain!important;transform:none!important;}
img{object-position:center;}
@media(max-width:680px){.hero{height:450px;min-height:0;padding:0;align-items:center}.hero video{object-fit:contain}.hero h1{font-size:clamp(33px,8vw,46px)}.page-head{min-height:260px}.banner{min-height:290px}.photo-frame{aspect-ratio: 4 / 3}}


/* Reference-framed hero: full-width 16:9 canvas, no zoom and no loss of picture. */
.hero{width:100%;height:auto!important;min-height:0!important;aspect-ratio:16/9;padding:0!important;position:relative;display:flex;align-items:center;overflow:hidden;background:#0D0D0D}
.hero video{display:block!important;position:absolute!important;inset:0!important;width:100%!important;height:100%!important;object-fit:contain!important;object-position:center!important;transform:none!important}
.hero-overlay{z-index:1;background:linear-gradient(90deg,rgba(5,8,10,.63) 0%,rgba(5,8,10,.32) 58%,rgba(5,8,10,.17) 100%)!important}
.hero-copy{z-index:2;position:relative;padding:52px 0!important}
.hero h1{font-size:clamp(37px,4.75vw,72px)!important;max-width:910px;line-height:1.09;letter-spacing:-.05em;margin:22px 0 18px}
.hero p{max-width:650px;line-height:1.65}
/* Other major visual panels use image-native proportions instead of cover cropping. */
.banner,.page-head{width:100%;min-height:0!important;position:relative;overflow:hidden;isolation:isolate;background:#0D0D0D!important}
.banner{aspect-ratio:16/7;display:flex;align-items:center;justify-content:center;padding:50px 0!important}
.page-head{aspect-ratio:16/5;display:flex;align-items:center;padding:45px 0!important}
.banner::before,.page-head::before{content:'';position:absolute;inset:0;background-image:url('../assets/campus-city.jpg')!important;background-repeat:no-repeat;background-position:center center;background-size:contain!important;z-index:-2}
.banner::after,.page-head::after{content:'';position:absolute;inset:0;background:rgba(8,11,12,.54)!important;z-index:-1}
.banner>.container,.page-head>.container{position:relative;z-index:1}
/* Project photography: never trim edges. */
.photo-frame{height:auto!important;min-height:0!important;aspect-ratio:auto!important;display:block!important;padding:0!important;overflow:visible!important;background:transparent!important}
.photo-frame img{width:100%!important;height:auto!important;max-height:none!important;aspect-ratio:auto!important;object-fit:contain!important;object-position:center!important;display:block;transform:none!important}
.gallery figure{min-height:0!important;padding:0!important;display:block!important;background:transparent!important}
.gallery img{height:auto!important;width:100%!important;max-height:none!important;object-fit:contain!important;transform:none!important}
@media(max-width:700px){
 .hero{aspect-ratio:auto;min-height:0!important;height:auto!important;display:block;padding:0!important}
 .hero video{position:relative!important;inset:auto!important;width:100%!important;height:auto!important;aspect-ratio:16/9;object-fit:contain!important}
 .hero-overlay{position:absolute;inset:0;pointer-events:none}
 .hero-copy{padding:26px 0 42px!important;background:#0D0D0D}
 .hero h1{font-size:clamp(35px,8vw,52px)!important}
 .banner{aspect-ratio:auto;min-height:300px!important}
 .page-head{aspect-ratio:auto;min-height:290px!important}
 .banner::before,.page-head::before{background-size:contain!important}
}

/* Section hero photographs: one authentic, page-specific image, uncropped. */
.page-head.page-head-framed{background:#0D0D0D!important;position:relative;isolation:isolate;padding:0!important;min-height:0!important;overflow:hidden;display:grid;grid-template-areas:"media";align-items:end;}
.page-head-framed::before,.page-head-framed::after{content:none!important;display:none!important;}
.page-head-framed .page-head-photo{grid-area:media;width:100%;height:auto;display:block;object-fit:contain;object-position:center;max-height:none;min-height:0;position:relative;z-index:-2;}
.page-head-framed .page-head-photo-shade{grid-area:media;align-self:stretch;justify-self:stretch;z-index:-1;background:linear-gradient(90deg,rgba(9,13,14,.83),rgba(9,13,14,.19) 72%),linear-gradient(0deg,rgba(9,13,14,.52),transparent 62%);pointer-events:none;}
.page-head-framed>.container{grid-area:media;width:min(1320px,calc(100% - 100px));padding:clamp(38px,6vw,90px) 0;z-index:1;align-self:end;pointer-events:none;}
.page-head-framed>.container a{pointer-events:auto;}
.page-head-framed h1{max-width:850px;font-size:clamp(38px,4.7vw,68px);margin:12px 0;}
.page-head-framed p{max-width:610px;margin-bottom:0;}
@media(max-width:680px){.page-head-framed{display:flex!important;flex-direction:column;align-items:stretch!important;} .page-head-framed .page-head-photo{width:100%;height:auto;} .page-head-framed .page-head-photo-shade{display:none;} .page-head-framed>.container{width:calc(100% - 38px);padding:28px 0 35px;background:#0D0D0D;} .page-head-framed h1{font-size:clamp(34px,8vw,52px);} }

/* Desktop hero video fills width without distortion or letterboxing. */
@media(min-width:701px){.hero video{object-fit:cover!important;object-position:center center!important}}
