/* Reference-inspired motion and layout. No third-party scripts required. */
@font-face{font-family:'DM Sans';src:url('../assets/fonts/dm-sans-400.ttf') format('truetype');font-weight:400;font-display:swap}@font-face{font-family:'DM Sans';src:url('../assets/fonts/dm-sans-500.ttf') format('truetype');font-weight:500;font-display:swap}@font-face{font-family:'DM Sans';src:url('../assets/fonts/dm-sans-600.ttf') format('truetype');font-weight:600;font-display:swap}@font-face{font-family:'DM Sans';src:url('../assets/fonts/dm-sans-700.ttf') format('truetype');font-weight:700;font-display:swap}@font-face{font-family:'DM Sans';src:url('../assets/fonts/dm-sans-800.ttf') format('truetype');font-weight:800;font-display:swap}
body{font-family:'DM Sans',Arial,sans-serif}h2{font-weight:700;letter-spacing:-1.8px}button i,a i{pointer-events:none}.header{transition:box-shadow .35s}.header.scrolled{box-shadow:0 6px 30px #00000012}.header-inner{transition:padding .35s}.header.scrolled .header-inner{padding-top:10px;padding-bottom:10px}.brand img{width:200px}.header nav a{font-size:16px}.submenu{display:block;visibility:hidden;opacity:0;transform:translateY(15px);transition:opacity .25s,transform .25s,visibility .25s;border-top:3px solid var(--teal)}.has-sub:hover .submenu,.has-sub:focus-within .submenu,.has-sub.open .submenu{visibility:visible;opacity:1;transform:translateY(0)}.btn{position:relative;isolation:isolate;overflow:hidden;min-height:48px;transition:color .3s;background:var(--teal);transform:none!important}.btn:before,.btn:after{content:'';position:absolute;z-index:-1;top:0;bottom:0;width:51%;background:var(--dark);transition:transform .4s cubic-bezier(.2,.65,.3,1)}.btn:before{left:0;transform:translateY(-101%)}.btn:after{right:0;transform:translateY(101%)}.btn:hover:before,.btn:hover:after{transform:translateY(0)}.btn:hover{color:#fff;background:var(--teal)}.btn>i{font-size:19px;transition:transform .3s}.btn:hover>i{transform:translateX(5px)}.btn:focus-visible{outline-offset:4px}.btn:disabled{opacity:.6;cursor:wait}.hero{height:700px;isolation:isolate;overflow:hidden;background:#292929;margin-right:0}.hero-stage{position:relative;height:100%;margin-right:64px}.hero-slide{position:absolute;inset:0;visibility:hidden;opacity:0;transition:opacity 1s ease,visibility 1s}.hero-slide.is-active{visibility:visible;opacity:1;z-index:1}.hero-bg{position:absolute;inset:0;background-size:cover;background-position:center;transform:scale(1);transition:transform 6s ease}.hero-bg:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#202020b8,#20202060)}.is-active .hero-bg{transform:scale(1.08)}.hero-inner{width:min(1210px,calc(100% - 120px));gap:40px;padding-bottom:50px;z-index:2}.hero-copy{width:65%;flex-shrink:0}.hero .hero-title{font-size:clamp(46px,5.2vw,80px);line-height:1;letter-spacing:-3px;font-weight:800;color:white;margin:0 0 22px;max-width:800px}.hero .eyebrow{font-size:12px;font-weight:500;letter-spacing:2.8px;padding:7px 16px;margin-bottom:22px;line-height:1.6}.hero-description{font-size:16px;color:#eee!important}.hero-copy>*{opacity:0;transition:opacity 1.2s ease,transform 1.5s ease}.hero-copy .eyebrow{transform:translateY(-65px)}.hero-title{transform:translateY(90px)}.hero-description,.hero-copy .btn{transform:translateY(65px)!important}.is-active .hero-copy>*{opacity:1;transform:translateY(0)!important}.is-active .hero-title{transition-delay:.12s}.is-active .hero-description{transition-delay:.25s}.is-active .btn{transition-delay:.38s}.hero-samples{width:340px;height:410px;margin:0 25px 0 -60px;flex-shrink:0;transform:none}.sample{position:absolute;width:280px;height:230px;background:#fff;padding:7px 12px;clip-path:polygon(30% 0,100% 0,70% 100%,0 100%);transition:opacity 1.5s,transform 1.7s;opacity:0}.hero-samples .sample img{position:static;width:100%;height:100%;border:0;transform:none;box-shadow:none;clip-path:polygon(30% 0,100% 0,70% 100%,0 100%)}.sample-one{left:5px;top:10px;transform:translate(60px,-60px)}.sample-two{left:65px;top:180px;transform:translate(-60px,60px)}.is-active .sample{opacity:1;transform:translate(0)}.is-active .sample-two{transition-delay:.2s}.sample-tag{position:absolute;background:white;padding:2px 9px;border-radius:12px;color:#3d3d3d;font-size:9px;text-transform:uppercase;letter-spacing:.6px;animation:sampleFloat 3.5s ease-in-out infinite}.sample-tag:before{content:'';position:absolute;width:1px;height:42px;background:#fff}.sample-tag-one{right:0;top:-30px}.sample-tag-one:before{right:25px;top:100%}.sample-tag-two{bottom:-35px;left:15px;animation-delay:-1.5s}.sample-tag-two:before{left:20px;bottom:100%}.hero-rail{position:absolute;right:0;top:0;bottom:0;width:64px;background:white;display:flex;align-items:center;justify-content:center;gap:40px;writing-mode:vertical-rl;color:#333;font-size:10px;letter-spacing:1.5px}.hero-rail a:hover{color:#b0101a}.rail-rule{height:100px;width:1px;background:#ddd}.hero-controls{position:absolute;z-index:4;right:105px;bottom:28px;display:flex;align-items:center;gap:20px}.hero-controls button{border:0;background:transparent;color:white;font-size:24px;min-width:36px;min-height:40px}.hero-controls button:hover{color:var(--teal)}.hero-count{display:flex;align-items:center;gap:12px;font-size:12px;color:#ddd}.hero-count b{color:white;font-size:18px}.hero-count span{width:65px;height:1px;background:#ffffff88}.hero-controls .hero-pause{font-size:18px;border:1px solid #ffffff55;width:34px;min-height:34px;border-radius:50%;margin-left:5px}.hero-dots{position:absolute;left:calc((100% - min(1210px,100% - 120px))/2);bottom:42px;z-index:4;display:flex;gap:9px}.hero-dots button{width:22px;height:22px;padding:5px;border:1px solid transparent;background:transparent;border-radius:50%;position:relative}.hero-dots button:after{content:'';position:absolute;inset:7px;background:#fff;border-radius:50%}.hero-dots button[aria-current=true]{border-color:#fff}.hero-progress{position:absolute;left:0;bottom:0;width:calc(100% - 64px);height:3px;background:var(--teal);transform:scaleX(0);transform-origin:left;z-index:3}.hero-progress.running{animation:slideProgress 6500ms linear forwards}.hero.is-paused .hero-progress{animation-play-state:paused}.material-strip{overflow:hidden;padding:48px 0;margin-bottom:0}.material-track{display:flex;align-items:center;justify-content:space-between;gap:40px;width:100%}.material-track>span{flex:1;text-align:center;min-width:110px}.material-track i{font-size:48px;color:#c4bcb3;transition:color .35s,transform .5s;display:inline-block}.material-track>span:hover i{color:#031e4d;transform:rotateY(180deg)}.material-track small{font-size:10px;letter-spacing:1px}.carousel-controls{display:flex;align-items:center;justify-content:center;gap:10px}.carousel-controls button{width:44px;height:44px;border-radius:50%;border:0;background:#f0ede9;color:#69615a;font-size:24px;display:grid;place-items:center;transition:background .3s,color .3s}.carousel-controls button:hover{background:var(--teal);color:#173535}.service-grid{display:flex;gap:30px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;scroll-behavior:smooth;padding-bottom:8px}.service-grid::-webkit-scrollbar,.gallery-grid::-webkit-scrollbar,.review-grid::-webkit-scrollbar{display:none}.service-card{position:relative;flex:0 0 calc((100% - 90px)/4);padding:22px 22px 28px;overflow:hidden;isolation:isolate;scroll-snap-align:start;transition:background .4s;min-width:0}.service-card:before{content:'';position:absolute;inset:0;background:var(--dark);z-index:-1;transform:scaleY(0);transform-origin:bottom;transition:transform .55s cubic-bezier(.2,.6,.3,1)}.service-card:hover:before{transform:scaleY(1)}.service-image{height:205px;overflow:hidden;position:relative}.service-image img{height:100%;width:100%;transition:transform .6s,filter .6s}.service-card:hover .service-image img{transform:scale(1.08);filter:brightness(.85)}.service-card .service-content{padding:20px 0 15px;min-height:130px}.service-card h3{font-size:19px;transition:color .35s;margin-bottom:10px}.service-card p{font-size:12px;transition:color .35s}.service-card:hover h3{color:#fff}.service-card:hover p{color:#ccc}.service-card .service-content>a{position:static;width:auto;height:auto;border-radius:0;background:none;font-size:17px;color:#626262;display:flex;justify-content:flex-start;align-items:center;gap:10px;margin-top:25px;padding-right:42px}.service-link-label{font-size:10px;text-transform:uppercase;letter-spacing:.6px}.service-card:hover .service-content>a{color:#fff;}.service-icon{position:absolute;bottom:24px;right:17px;width:54px;height:54px;background:#031e4d;border-radius:50%;display:grid;place-items:center;color:#fff;transition:background .35s}.service-icon i{display:block;font-size:30px;transition:transform .5s}.service-card:hover .service-icon{background:var(--teal);color:#173535}.service-card:hover .service-icon i{transform:rotateY(180deg)}.collage-front{transition:transform .8s}.collage:hover .collage-front{transform:translateY(-10px)}.collage-label{animation:sampleFloat 4s ease-in-out infinite}.feature-line{position:relative;border-bottom:3px solid #eeece8}.feature-line>span:first-child i{color:#b0101a;font-size:20px;margin-right:8px}.line-fill{position:absolute;height:3px;bottom:-3px;left:0;width:100%;background:#031e4d;transform:scaleX(0);transform-origin:left;transition:transform 1.5s ease}.feature-line.is-visible .line-fill{transform:scaleX(1)}.feature-line:nth-of-type(3) .line-fill{width:92%}.feature-line:nth-of-type(4) .line-fill{width:86%}.showcase{overflow:hidden}.showcase>img{transition:transform 1s}.showcase:hover>img{transform:scale(1.04)}.round-link{overflow:visible}.round-link:after{content:'';position:absolute;inset:-12px;border:1px solid white;border-radius:50%;animation:ripple 2.4s ease-out infinite}.gallery-content{background-attachment:fixed}.gallery-content>.container{position:relative}.gallery-controls{margin:-18px 0 30px}.gallery-grid{display:flex;gap:24px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;scroll-behavior:smooth;cursor:grab;touch-action:pan-x pan-y}.gallery-item,.gallery-item:nth-child(4),.gallery-item:nth-child(5){flex:0 0 calc((100% - 48px)/3);scroll-snap-align:start;isolation:isolate}.gallery-item img{height:340px}.gallery-item:after{content:'';position:absolute;inset:15px;border:1px solid #ffffff80;transform:scale(.9);opacity:0;transition:transform .5s,opacity .5s;pointer-events:none}.gallery-item:hover:after,.gallery-item:focus-visible:after{transform:scale(1);opacity:1}.gallery-item span{padding:65px 30px 28px;font-size:18px;transform:translateY(100%);transition:transform .5s;background:linear-gradient(transparent,#292929ed);display:flex;justify-content:space-between;align-items:center}.gallery-item:hover span,.gallery-item:focus-visible span{transform:translateY(0)}.gallery-item:hover img{filter:brightness(.7);transform:scale(1.06)}.gallery-item img{transition:transform .7s,filter .7s}.faq details{transition:background .3s}.faq details[open]{background:#e9e5df}.faq summary:before{background:var(--dark);transition:background .3s}.faq details[open] summary:before{background:var(--teal)}.faq details p{overflow:hidden}.three-grid a{overflow:hidden;position:relative}.three-grid img{transition:transform .7s,filter .7s}.three-grid a:hover img{transform:scale(1.035);filter:brightness(.9)}.three-grid a>span i{display:inline-block;transition:transform .3s}.three-grid a:hover>span i{transform:translateX(7px)}.review-grid{display:flex;overflow-x:auto;scrollbar-width:none;scroll-snap-type:x mandatory;scroll-behavior:smooth;padding-bottom:8px}.review-grid>figure{flex:0 0 calc((100% - 30px)/2);scroll-snap-align:start;overflow:hidden;position:relative}.quote-mark{font-size:30px}.stars{display:flex;gap:4px}.cta-band{background-attachment:fixed}.mini-gallery{overflow:hidden}.mini-gallery img{transition:transform .5s,filter .5s}.mini-gallery img:hover{transform:translateY(-5px);filter:brightness(.85)}.back-top{background:white;color:#b0101a;border-radius:50%;width:48px;height:48px;box-shadow:0 4px 18px #0002}.back-top>i{display:block;transform:rotate(-90deg);font-size:18px}.back-top svg{position:absolute;inset:0;transform:rotate(-90deg);width:100%;height:100%;fill:none;stroke-width:2}.progress-track{stroke:#e5e5e5}.progress-value{stroke:var(--teal);stroke-dasharray:131.95;stroke-dashoffset:131.95}.lightbox-prev,.lightbox-next{position:absolute;top:50%;transform:translateY(-50%);border:0;background:#ffffffed;width:42px;height:48px;color:#222;font-size:22px}.lightbox-prev{left:20px}.lightbox-next{right:20px}.lightbox-close{z-index:2}dialog[open]{animation:dialogIn .25s ease}.cursor-ring{display:none}.reveal{transition:opacity 1.2s ease,transform 1.5s cubic-bezier(.2,.65,.3,1);transition-delay:var(--reveal-delay,0ms)}.motion-ready .reveal:not(.is-visible){opacity:0;transform:translateY(50px)}.motion-ready .reveal.from-left:not(.is-visible){transform:translateX(-55px)}.motion-ready .reveal.from-right:not(.is-visible){transform:translateX(55px)}.reveal.is-visible{opacity:1;transform:none}.carousel-dragging{scroll-snap-type:none!important;scroll-behavior:auto!important;cursor:grabbing!important;user-select:none}.carousel-dragging *{pointer-events:none}.header nav>ul>li>a{position:relative}.header nav>ul>li>a:after{content:'';position:absolute;left:0;bottom:-6px;width:100%;height:2px;background:var(--teal);transform:scaleX(0);transform-origin:left;transition:transform .3s}.header nav>ul>li>a:hover:after,.header nav a.active:after{transform:scaleX(1)}
@keyframes sampleFloat{50%{translate:0 -9px}}@keyframes slideProgress{to{transform:scaleX(1)}}@keyframes ripple{0%{transform:scale(1);opacity:.8}100%{transform:scale(1.65);opacity:0}}@keyframes dialogIn{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
@media(min-width:1500px){.hero{height:790px}.hero-inner{width:min(1370px,calc(100% - 160px))}.hero .hero-title{font-size:86px}.hero-samples{margin-right:45px}.hero-dots{left:max(80px,calc((100% - 1370px)/2))}}
@media(max-width:1199px){.hero{height:630px}.hero-stage{margin-right:45px}.hero-rail{width:45px}.hero-progress{width:calc(100% - 45px)}.hero-inner{width:calc(100% - 80px);gap:20px}.hero .hero-title{font-size:60px}.hero-copy{width:64%}.hero-samples{scale:.8;transform-origin:left center;margin-left:-30px}.service-card{flex-basis:calc((100% - 60px)/3)}.hero-controls{right:75px}.hero-dots{left:40px}.service-image{height:210px}}
@media(max-width:940px){.header nav .submenu{display:none;visibility:visible;opacity:1;transform:none;border:0}.header nav .has-sub.open .submenu{display:block}.header nav{display:block;visibility:hidden;opacity:0;transform:translateY(-12px);transition:opacity .3s,transform .3s,visibility .3s}.header nav.open{visibility:visible;opacity:1;transform:none}.header nav>ul>li>a:after{bottom:7px}.hero{height:600px}.hero .hero-title{font-size:50px}.hero .eyebrow{font-size:10px;padding:6px 10px;letter-spacing:1.3px}.hero-samples{scale:.65;margin-left:-40px}.hero-copy{width:63%}.hero-description{font-size:14px;max-width:310px}.service-card{flex-basis:calc((100% - 30px)/2)}.material-track{justify-content:flex-start;gap:35px;animation:materialMove 20s linear infinite;width:max-content}.material-track>span{flex:none;width:120px}.material-strip:hover .material-track{animation-play-state:paused}.gallery-item,.gallery-item:nth-child(4),.gallery-item:nth-child(5){flex-basis:calc((100% - 24px)/2)}.gallery-item img{height:300px}.gallery-item span{transform:none;font-size:15px;padding:40px 20px 20px}.gallery-content,.cta-band{background-attachment:scroll}.cursor-ring{display:none!important}}
@media(max-width:640px){.brand img{width:157px}.header.scrolled .header-inner{padding:10px 18px}.header nav a{font-size:15px}.hero{height:650px}.hero-stage{margin-right:0}.hero-inner{width:calc(100% - 40px);padding-top:58px;align-items:flex-start;display:block}.hero-copy{width:100%;position:relative;z-index:2}.hero .hero-title{font-size:43px;letter-spacing:-1.8px;max-width:100%}.hero .eyebrow{font-size:9px;letter-spacing:1px;margin-bottom:18px}.hero-description{font-size:14px;max-width:260px}.hero-copy .btn{padding:12px 18px;font-size:11px}.hero-samples{display:block;position:absolute;right:-7px;bottom:95px;left:auto;width:170px;height:160px;scale:.52;transform-origin:bottom right;opacity:.95;z-index:1;margin:0}.sample-one{top:-120px;left:-110px}.sample-two{top:30px;left:-65px}.sample-tag{display:none}.hero-rail{display:none}.hero-controls{bottom:23px;right:20px;gap:10px}.hero-count span{width:35px}.hero-controls button{font-size:20px;min-width:30px}.hero-dots{left:20px;bottom:32px;gap:4px}.hero-progress{width:100%}.material-strip{padding:30px 0;flex-wrap:nowrap}.material-track small{font-size:9px}.material-track i{font-size:40px}.material-track{gap:30px}.material-track>span{width:110px}.heading-row{flex-direction:row;align-items:center;gap:15px}.heading-row .side-heading{flex:1}.heading-row h2{font-size:28px}.heading-row>p{display:none}.heading-row .carousel-controls{gap:5px;flex-direction:column}.carousel-controls button{width:38px;height:38px;font-size:22px}.service-grid{gap:18px}.service-card{flex-basis:85%;padding:20px}.service-image{height:235px}.service-card h3{font-size:22px}.service-card p{font-size:13px;max-width:none}.service-card .service-content{padding:22px 0 12px;min-height:130px}.service-card .service-content>a{padding-right:50px}.service-link-label{font-size:11px}.service-icon{right:20px;bottom:23px;width:56px;height:56px}.gallery-grid{gap:16px;width:calc(100% - 40px)}.gallery-item,.gallery-item:nth-child(4),.gallery-item:nth-child(5){flex-basis:88%}.gallery-item img{height:330px}.gallery-item span{font-size:16px}.review-grid{gap:18px}.review-grid>figure{flex-basis:100%}.three-grid img{transform:none!important}.back-top{width:44px;height:44px}.hero-slide:not(.is-active){pointer-events:none}}
@media(max-width:359px){.brand img{width:138px}.header-cta{font-size:8px;padding:8px}.hero .hero-title{font-size:37px}.hero{height:610px}.hero-copy .eyebrow{font-size:8px}.hero-count{gap:7px}.hero-controls{right:14px;gap:5px}.hero-dots{left:14px}.hero-samples{scale:.45;right:0}.heading-row h2{font-size:25px}}
@media(hover:hover) and (pointer:fine){.cursor-ring{display:block;position:fixed;width:32px;height:32px;border:1px solid var(--teal);border-radius:50%;z-index:90;pointer-events:none;left:0;top:0;opacity:0;transition:width .2s,height .2s,opacity .2s;background:#b0101a08}.cursor-ring.over-link{width:48px;height:48px;background:#b0101a1a}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.hero-bg{transform:none!important}.motion-ready .reveal:not(.is-visible){opacity:1;transform:none}.line-fill{transform:scaleX(1)}.material-track{width:100%;flex-wrap:wrap;justify-content:center}.hero-progress,.cursor-ring{display:none!important}.sample,.hero-copy>*{transform:none!important;opacity:1}}
.modal-open{overflow:hidden}.material-clone{display:none}.carousel-controls button:disabled{cursor:default}.carousel-controls button:disabled:hover{background:#f0ede9;color:#69615a}
@keyframes materialMove{to{transform:translateX(var(--ribbon-distance,-930px))}}
@media(min-width:1200px) and (max-width:1599px){.service-card{flex-basis:calc((100% - 60px)/3)}}
@media(max-width:940px){.material-track>.material-clone{display:block}}
@media(prefers-reduced-motion:reduce){.material-track>.material-clone{display:none}}
body{overflow-x:clip}.service-card>.service-image{padding:0}.service-card .service-image{min-height:0}.hero-copy .btn:hover{transition-delay:0s}.cursor-ring{will-change:transform}
/* Opposing half-width button wipe used by the reference. */
.btn:before,.btn:after{width:0;height:50%;transform:none;transition:width .5s cubic-bezier(.785,.135,.15,.86)}.btn:before{top:0;bottom:auto;left:0;right:auto}.btn:after{top:auto;bottom:0;right:0;left:auto}.btn:hover:before,.btn:hover:after{width:100%;transform:none}.hero-copy>*{transition-duration:2s}.service-card .service-content>a{transition:color .4s,translate .5s}.service-card:hover .service-content>a{translate:4px 0}
