:root{--ink:#183c31;--deep:#113a30;--moss:#6f8750;--paper:#f4f2eb;--sand:#dbd5c8;--line:rgba(24,60,49,.19);--serif:'Nanum Myeongjo',serif;--sans:'DM Sans','Pretendard',Arial,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);word-break:keep-all}.shell{width:min(100% - 96px,1320px);margin-inline:auto}a{color:inherit;text-decoration:none}.eyebrow{font-size:11px;font-weight:700;letter-spacing:.16em;margin:0;text-transform:uppercase}.eyebrow.light{color:rgba(255,255,255,.72)}h1,h2,h3,p{margin-top:0}.hero{min-height:930px;height:100vh;position:relative;color:#fff;background:linear-gradient(90deg,rgba(9,38,28,.67),rgba(7,27,18,.11) 62%,rgba(6,24,16,.3)) center/cover}.hero:after{content:'';position:absolute;inset:auto 0 0;height:36%;background:linear-gradient(transparent,rgba(6,29,19,.48));pointer-events:none}.topbar,.sub-header{height:102px;display:flex;align-items:center;justify-content:space-between;position:relative;z-index:2;border-bottom:1px solid rgba(255,255,255,.24)}.brand{display:flex;gap:10px;align-items:center;font:700 12px/10px var(--sans);letter-spacing:.12em}.brand b{font-size:8px;font-weight:500;letter-spacing:.16em}.brand-mark{width:25px;height:29px;position:relative;display:flex;align-items:flex-end;gap:3px}.brand-mark i{display:block;width:6px;background:#b7ce88;border-radius:4px 4px 0 0;transform:skewY(-19deg)}.brand-mark i:nth-child(1){height:13px}.brand-mark i:nth-child(2){height:25px}.brand-mark i:nth-child(3){height:18px}.brand.dark .brand-mark i{background:var(--moss)}nav{display:flex;gap:41px;margin-left:13%}nav a,.menu-link{font-size:13px;font-weight:500;transition:opacity .2s}nav a:not(.active):hover{opacity:.55}nav .active{font-weight:700}.menu-link span{font-size:18px;margin-left:7px}.hero-copy{position:relative;z-index:1;padding-top:clamp(155px,20vh,242px)}.hero h1{font:800 clamp(46px,5.1vw,76px)/1.2 var(--serif);letter-spacing:-.075em;margin:22px 0 0}.hero h1 em,.intro h2 em,.projects h2 em,.contact h2 em,.sub-hero h1 em,.process h2 em{font-style:normal;color:#c5dc98}.hero-bottom{display:flex;align-items:center;gap:65px;margin-top:63px}.hero-bottom p{font-size:15px;line-height:1.8;margin:0}.round-link{width:54px;height:54px;border:1px solid rgba(255,255,255,.65);border-radius:50%;display:grid;place-items:center;font-size:20px}.hero-credit{position:absolute;z-index:1;bottom:38px;left:48px;font-size:10px;line-height:1.7;letter-spacing:.12em}.hero-credit span{font-size:9px;opacity:.62}.intro{padding:150px 0 137px}.intro-grid{display:grid;grid-template-columns:1.18fr .7fr;gap:13%;margin-top:32px}.intro h2,.projects h2,.contact h2,.process h2{font:800 clamp(36px,4.1vw,57px)/1.39 var(--serif);letter-spacing:-.075em;margin:0}.intro h2 em,.projects h2 em,.contact h2 em,.process h2 em,.sub-hero h1 em{color:var(--moss);font-style:normal}.intro-text{align-self:end;padding-bottom:11px}.intro-text p{font-size:16px;line-height:1.9;margin:0 0 38px}.text-link{display:inline-flex;gap:37px;font-size:13px;font-weight:700;border-bottom:1px solid var(--ink);padding-bottom:12px}.text-link span{font-size:18px;line-height:12px}.intro-image{height:534px;margin-top:100px;position:relative;background: center 58%/cover}.image-tag{position:absolute;bottom:22px;left:24px;background:var(--paper);padding:10px 13px;font:700 10px var(--sans);letter-spacing:.1em}.services{background:#e7e4da;padding:128px 0 130px}.section-head{display:flex;justify-content:space-between;align-items:flex-start}.section-head>p:last-child{font:24px/1.55 var(--serif);letter-spacing:-.06em}.service-list{margin-top:70px;border-top:1px solid var(--line)}.service-list a{display:grid;grid-template-columns:9% 1fr 1fr 28px;align-items:center;border-bottom:1px solid var(--line);height:112px;transition:.3s}.service-list a:hover{padding-left:18px;background:rgba(255,255,255,.27)}.service-list span,.service-list em{font-size:11px;letter-spacing:.08em;font-style:normal}.service-list strong{font:700 28px var(--serif);letter-spacing:-.06em}.service-list b{font-size:22px;font-weight:400;text-align:right}.projects{background:var(--deep);padding:135px 0 142px;color:#fff}.project-heading{display:flex;justify-content:space-between;align-items:end}.project-heading h2{margin-top:27px}.outline-link{font-size:13px;border-bottom:1px solid rgba(255,255,255,.65);padding-bottom:11px}.outline-link span{margin-left:23px;font-size:18px}.project-grid{display:grid;grid-template-columns:1.1fr .9fr .9fr;gap:18px;margin-top:77px}.project-card{height:492px;position:relative;overflow:hidden;background-position:center;background-size:cover}.project-card:before{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(5,22,12,.25),rgba(5,22,12,.7))}.project-card:hover:before{background:linear-gradient(180deg,rgba(5,22,12,.15),rgba(5,22,12,.58))}.project-card a{position:absolute;inset:0;padding:23px;display:flex;flex-direction:column;justify-content:space-between}.project-card>a>span{font-size:11px}.project-card small{font-size:10px;letter-spacing:.1em}.project-card h3{font:700 29px/1.36 var(--serif);letter-spacing:-.075em;margin:14px 0 25px}.project-card i{font-size:12px;font-style:normal;border-bottom:1px solid rgba(255,255,255,.7);padding-bottom:7px}.contact{padding:140px 0;background:#d6dfc4}.contact-inner{display:flex;justify-content:space-between;align-items:end}.contact h2{margin-top:24px}.contact-action{width:33%;padding-bottom:5px}.contact-action p{font-size:15px;line-height:1.85;margin-bottom:35px}.contact-action a{display:flex;justify-content:space-between;border-bottom:1px solid var(--ink);padding:0 0 16px;font-size:15px;font-weight:700}.contact-action span{font-size:21px}.footer{height:132px;display:flex;align-items:center;justify-content:space-between}.footer p,.footer>a:last-child{font-size:10px;color:rgba(24,60,49,.65);letter-spacing:.08em}.footer>a:last-child{font-weight:700}.sub-header{border-color:var(--line)}.sub-header nav{margin-left:10%}.sub-header nav .active{border-bottom:2px solid var(--ink);padding-bottom:8px}.sub-hero{padding:32px 0 0;position:relative}.breadcrumb{font-size:10px;letter-spacing:.07em;color:#6c796f}.breadcrumb span{margin:0 8px}.sub-hero .eyebrow{margin-top:145px}.sub-hero h1{font:800 clamp(49px,5.4vw,78px)/1.2 var(--serif);letter-spacing:-.08em;margin:28px 0 29px}.sub-lead{font-size:16px;line-height:1.82;color:#53665c}.sub-hero-image{height:495px;margin-top:83px;position:relative;background:linear-gradient(90deg,rgba(5,31,19,.18),transparent) center/cover}.sub-hero-image span{position:absolute;left:22px;bottom:18px;color:#fff;font-size:10px;letter-spacing:.1em}.detail{padding:170px 0;display:grid;grid-template-columns:31% 1fr;gap:9%}.detail-side h2{font:700 35px var(--serif);letter-spacing:-.07em;margin:25px 0 11px}.detail-side small{font-size:10px;letter-spacing:.1em;color:#728076}.detail-copy{font:25px/1.75 var(--serif);letter-spacing:-.06em;max-width:730px;margin:0 0 65px}.detail-image{height:515px;background:center/cover}.process{padding:132px 0;background:#e7e4da}.process h2{margin:25px 0 67px}.process-grid{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line)}.process-grid article{min-height:210px;padding:25px 29px 20px 0;border-right:1px solid var(--line)}.process-grid article+article{padding-left:29px}.process-grid article:last-child{border-right:0}.process-grid span{font-size:11px}.process-grid h3{font:700 22px var(--serif);letter-spacing:-.06em;margin:54px 0 14px}.process-grid p{font-size:14px;line-height:1.7;margin:0;color:#506057}.service-nav{padding:127px 0 140px;display:grid;grid-template-columns:repeat(2,1fr);gap:0 68px}.service-nav a{height:77px;border-top:1px solid var(--line);display:flex;align-items:center;gap:25px;font:700 20px var(--serif);letter-spacing:-.05em}.service-nav a:nth-last-child(-n+2){border-bottom:1px solid var(--line)}.service-nav span{font:400 11px var(--sans)}.service-nav i{margin-left:auto;font:400 18px var(--sans)}.service-nav .is-current{color:var(--moss)}.contact.compact{padding:105px 0}.compact .contact-action{align-self:center}.compact .contact-action a{margin-top:20px}
@media(max-width:760px){.shell{width:min(100% - 42px,1320px)}.hero{min-height:730px}.topbar,.sub-header{height:78px}.topbar nav,.sub-header nav{display:none}.menu-link{font-size:12px}.hero-credit{left:21px;bottom:21px}.hero-copy{padding-top:143px}.hero h1{font-size:43px}.hero-bottom{margin-top:45px;gap:25px}.hero-bottom p{font-size:13px}.intro{padding:82px 0}.intro-grid{display:block;margin-top:26px}.intro h2,.projects h2,.contact h2,.process h2{font-size:35px}.intro-text{margin-top:37px}.intro-image{height:300px;margin-top:65px}.services{padding:78px 0}.section-head{display:block}.section-head>p:last-child{font-size:20px;margin-top:23px}.service-list{margin-top:48px}.service-list a{grid-template-columns:16% 1fr 28px;height:88px}.service-list em{display:none}.service-list strong{font-size:22px}.projects{padding:81px 0}.project-heading{display:block}.outline-link{display:inline-block;margin-top:35px}.project-grid{display:block;margin-top:44px}.project-card{height:340px;margin-top:15px}.project-card h3{font-size:25px}.contact{padding:80px 0}.contact-inner{display:block}.contact-action{width:100%;margin-top:45px}.footer{height:137px;display:grid;grid-template-columns:1fr auto;gap:8px}.footer p{grid-column:1/3;margin:0;font-size:9px}.sub-hero .eyebrow{margin-top:85px}.sub-hero h1{font-size:45px}.sub-lead{font-size:14px}.sub-hero-image{height:290px;margin-top:54px}.detail{display:block;padding:84px 0}.detail-main{margin-top:43px}.detail-copy{font-size:20px}.detail-image{height:295px}.process{padding:80px 0}.process-grid{display:block}.process-grid article{min-height:0;padding:21px 0 30px;border-right:0;border-bottom:1px solid var(--line)}.process-grid article+article{padding-left:0}.process-grid h3{margin:25px 0 11px}.service-nav{display:block;padding:75px 0}.service-nav a{font-size:19px}.service-nav a:nth-last-child(-n+2){border-bottom:0}.service-nav a:last-child{border-bottom:1px solid var(--line)}.contact.compact{padding:78px 0}}

/* Main rolling visual system: fade hero + continuous project strip, inspired by the reference interaction. */
.hero{background:var(--deep);overflow:hidden}.hero-slider{position:absolute;inset:0;z-index:0}.hero-slide{position:absolute;inset:0;opacity:0;background:linear-gradient(90deg,rgba(9,38,28,.72),rgba(7,27,18,.14) 62%,rgba(6,24,16,.32)),var(--hero-image) center/cover;transition:opacity 1s cubic-bezier(.22,1,.36,1)}.hero-slide.is-active{opacity:1}.hero-slide span{position:absolute;right:48px;bottom:39px;color:rgba(255,255,255,.73);font-size:10px;letter-spacing:.13em}.hero-controls{position:absolute;z-index:3;right:48px;bottom:35px;display:flex;align-items:center;gap:18px}.hero-arrow{width:31px;height:31px;padding:0;border:1px solid rgba(255,255,255,.55);border-radius:50%;background:transparent;color:#fff;font:14px var(--sans);cursor:pointer;transition:background .2s,color .2s}.hero-arrow:hover{background:#fff;color:var(--deep)}.hero-dots{display:flex;gap:7px;align-items:center}.hero-dot{width:6px;height:6px;padding:0;border:1px solid rgba(255,255,255,.8);border-radius:50%;background:transparent;cursor:pointer;transition:all .25s}.hero-dot.is-active{width:24px;border-radius:6px;background:#c5dc98;border-color:#c5dc98}.hero-credit{bottom:36px}.hero-credit span{display:inline-block;margin-top:2px;max-width:260px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;vertical-align:bottom}.project-rolling{display:flex;align-items:center;gap:18px;margin-top:77px}.project-viewport{flex:1;overflow:hidden;mask-image:linear-gradient(90deg,transparent 0,#000 3%,#000 97%,transparent 100%)}.project-track{display:flex;width:max-content;gap:18px;will-change:transform}.project-slide{display:block;flex:0 0 clamp(260px,27vw,380px);color:#fff}.project-slide-image{height:318px;overflow:hidden;background:#20483c}.project-slide-image img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .6s cubic-bezier(.22,1,.36,1)}.project-slide:hover .project-slide-image img{transform:scale(1.04)}.project-slide>span{display:block;margin-top:18px;color:rgba(255,255,255,.62);font-size:10px;letter-spacing:.12em}.project-slide strong{display:block;margin-top:11px;font:700 20px/1.35 var(--serif);letter-spacing:-.06em}.project-arrow{flex:0 0 38px;width:38px;height:38px;padding:0;border:1px solid rgba(255,255,255,.55);border-radius:50%;background:transparent;color:#fff;font:16px var(--sans);cursor:pointer;transition:background .2s,color .2s}.project-arrow:hover{background:#c5dc98;color:var(--deep);border-color:#c5dc98}.projects .outline-link{position:relative;z-index:1}.hero:after{z-index:1}.hero-copy,.hero-credit{z-index:2}
.intro-image{background-image:url('assets/images/13_project-318_01.jpg')}
@media(max-width:760px){.hero-slide span{right:21px;bottom:95px;font-size:9px}.hero-controls{right:21px;bottom:28px}.hero-credit{bottom:28px;left:21px}.hero-credit span{max-width:170px}.project-rolling{gap:9px;margin-top:47px}.project-track{gap:13px}.project-slide{flex-basis:78vw}.project-slide-image{height:245px}.project-slide strong{font-size:18px}.project-arrow{flex-basis:30px;width:30px;height:30px;font-size:13px}.project-viewport{mask-image:linear-gradient(90deg,transparent 0,#000 4%,#000 96%,transparent 100%)}}

/* Subpage photo-led treatment. */
.sub-hero-image{height:620px;background-image:linear-gradient(90deg,rgba(5,31,19,.22),transparent 60%),var(--sub-image);box-shadow:0 24px 55px rgba(17,58,48,.13)}
.detail-image{height:650px;background-image:url('assets/images/36_project-306_01.jpg')}
.detail-gallery{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:18px}
.detail-gallery figure{margin:0}
.detail-gallery img{display:block;width:100%;height:285px;object-fit:cover}
.detail-gallery figcaption{padding:13px 0 0;color:#69786e;font-size:12px;line-height:1.6}
@media(max-width:760px){.sub-hero-image{height:410px}.detail-image{height:390px}.detail-gallery{gap:10px;margin-top:10px}.detail-gallery img{height:185px}.detail-gallery figcaption{font-size:11px;padding-top:9px}}

/* Project archive page, inspired by the reference's image-first project archive. */
.projects-intro{padding:32px 0 115px}.projects-intro .eyebrow{margin-top:145px}.projects-intro h1{font:800 clamp(52px,6vw,86px)/1.18 var(--serif);letter-spacing:-.09em;margin:28px 0}.projects-intro h1 em{font-style:normal;color:var(--moss)}.projects-lead{font-size:16px;line-height:1.85;color:#53665c}.project-catalog{padding-bottom:150px}.project-filters{display:flex;gap:28px;border-bottom:1px solid var(--line);margin-bottom:55px}.project-filters button{appearance:none;border:0;background:transparent;color:#7a887f;cursor:pointer;font:500 13px var(--sans);padding:0 0 17px;position:relative}.project-filters button.is-active{color:var(--ink);font-weight:700}.project-filters button.is-active:after{content:'';position:absolute;bottom:-1px;left:0;right:0;height:2px;background:var(--ink)}.project-catalog-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:75px 28px}.catalog-card{display:block;min-width:0}.catalog-card-feature{grid-row:span 2}.catalog-image{height:370px;overflow:hidden;background:#d7ddd1}.catalog-card-feature .catalog-image{height:620px}.catalog-image img{width:100%;height:100%;display:block;object-fit:cover;transition:transform .8s cubic-bezier(.22,1,.36,1)}.catalog-card:hover .catalog-image img{transform:scale(1.045)}.catalog-meta{padding-top:19px;display:grid;grid-template-columns:1fr auto;gap:8px 20px}.catalog-meta span{grid-column:1/-1;color:#7d8a81;font-size:10px;letter-spacing:.13em}.catalog-meta strong{font:700 25px/1.35 var(--serif);letter-spacing:-.07em}.catalog-meta i{align-self:end;color:var(--moss);font:400 12px var(--sans);font-style:normal;white-space:nowrap}.catalog-card[hidden]{display:none}.projects-page .contact{margin-top:0}
@media(max-width:760px){.projects-intro{padding:24px 0 73px}.projects-intro .eyebrow{margin-top:85px}.projects-intro h1{font-size:47px;margin:24px 0}.projects-lead{font-size:14px}.project-catalog{padding-bottom:85px}.project-filters{gap:18px;overflow:auto;margin-bottom:35px}.project-filters button{font-size:12px;white-space:nowrap}.project-catalog-grid{display:block}.catalog-card,.catalog-card-feature{display:block;margin-bottom:50px}.catalog-image,.catalog-card-feature .catalog-image{height:360px}.catalog-meta strong{font-size:21px}.catalog-meta i{font-size:11px}}

/* Service detail pages. */
.service-hero{padding:32px 0 125px}.service-hero .eyebrow{margin-top:136px}.service-hero-grid{display:grid;grid-template-columns:.92fr 1.08fr;gap:8%;align-items:end;margin-top:28px}.service-hero h1{font:800 clamp(48px,5.5vw,78px)/1.2 var(--serif);letter-spacing:-.085em;margin:0 0 30px}.service-hero h1 em,.service-detail-copy h2 em{font-style:normal;color:var(--moss)}.service-lead{font-size:16px;line-height:1.85;color:#53665c}.service-hero-image{height:590px;background:linear-gradient(90deg,rgba(5,31,19,.12),transparent),var(--service-image) center/cover;box-shadow:0 24px 55px rgba(17,58,48,.13)}.service-detail{display:grid;grid-template-columns:.76fr 1.24fr;gap:10%;padding:150px 0}.service-detail-copy{padding-top:14px}.service-detail-copy h2{font:800 clamp(36px,4vw,56px)/1.35 var(--serif);letter-spacing:-.08em;margin:27px 0}.service-detail-copy>p:last-child{font-size:16px;line-height:2;color:#53665c;max-width:470px}.service-detail-image{height:610px;background:var(--service-image) center/cover}.service-steps{padding:118px 0 130px;background:#e7e4da}.service-step-grid{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line);margin-top:53px}.service-step-grid article{min-height:235px;padding:25px 28px 20px 0;border-right:1px solid var(--line)}.service-step-grid article+article{padding-left:28px}.service-step-grid article:last-child{border-right:0}.service-step-grid span{font-size:11px}.service-step-grid h3{font:700 23px var(--serif);letter-spacing:-.06em;margin:58px 0 13px}.service-step-grid p{font-size:14px;line-height:1.75;color:#53665c;margin:0}.service-bottom{padding:118px 0 130px}.service-bottom a{display:flex;align-items:center;gap:28px;border-top:1px solid var(--line);padding:22px 0;font:700 28px var(--serif);letter-spacing:-.06em}.service-bottom span{font:500 11px var(--sans);letter-spacing:.08em;color:#718078}.service-bottom b{margin-left:auto;font:400 22px var(--sans)}
@media(max-width:760px){.service-hero{padding:24px 0 75px}.service-hero .eyebrow{margin-top:83px}.service-hero-grid{display:block;margin-top:24px}.service-hero h1{font-size:45px;margin-bottom:24px}.service-lead{font-size:14px}.service-hero-image{height:390px;margin-top:42px}.service-detail{display:block;padding:82px 0}.service-detail-copy h2{font-size:35px}.service-detail-copy>p:last-child{font-size:14px}.service-detail-image{height:390px;margin-top:45px}.service-steps{padding:80px 0}.service-step-grid{display:block;margin-top:38px}.service-step-grid article{min-height:0;padding:21px 0 30px;border-right:0;border-bottom:1px solid var(--line)}.service-step-grid article+article{padding-left:0}.service-step-grid h3{margin:26px 0 11px}.service-bottom{padding:72px 0 84px}.service-bottom a{font-size:22px;gap:16px}}

/* One unified inquiry area for all contact entry points. */
.unified-contact{padding:128px 0 138px;background:#d6dfc4}.unified-contact-head{display:grid;grid-template-columns:1fr .72fr;gap:12%;align-items:end}.unified-contact h2{margin:24px 0 17px}.unified-contact-head>div>p:last-child{font-size:15px;line-height:1.8;color:#53665c}.contact-info{border-left:1px solid rgba(24,60,49,.25);padding-left:30px;display:flex;flex-direction:column;gap:10px}.contact-info span{font-size:10px;letter-spacing:.14em;color:#6b7a70}.contact-info a{font:700 clamp(20px,2.2vw,28px) var(--serif);letter-spacing:-.05em}.contact-info small{font-size:12px;color:#53665c}.contact-form{margin-top:67px;padding-top:30px;border-top:1px solid rgba(24,60,49,.25)}.contact-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:25px 28px}.contact-form label{display:flex;flex-direction:column;gap:10px;font-size:12px;font-weight:700}.contact-form input,.contact-form select,.contact-form textarea{width:100%;border:0;border-bottom:1px solid rgba(24,60,49,.35);border-radius:0;background:transparent;padding:11px 0;color:var(--ink);font:400 15px var(--sans);outline:none}.contact-form textarea{resize:vertical;min-height:100px}.contact-form input:focus,.contact-form select:focus,.contact-form textarea:focus{border-bottom-color:var(--ink)}.contact-form .full{grid-column:1/-1}.contact-form-foot{display:flex;justify-content:space-between;align-items:center;margin-top:35px}.contact-form-foot .consent{display:flex;flex-direction:row;align-items:center;gap:8px;font-weight:400;color:#5a6b60}.consent input{width:15px;height:15px;accent-color:var(--ink)}.contact-form button{border:0;border-bottom:1px solid var(--ink);background:transparent;color:var(--ink);padding:0 0 12px;font:700 15px var(--sans);cursor:pointer}.contact-form button span{font-size:20px;margin-left:24px}.unified-contact+.footer{background:var(--paper)}
@media(max-width:760px){.unified-contact{padding:80px 0 85px}.unified-contact-head{display:block}.contact-info{border-left:0;border-top:1px solid rgba(24,60,49,.25);padding:22px 0 0;margin-top:38px}.contact-form{margin-top:48px;padding-top:25px}.contact-form-grid{display:block}.contact-form label{margin-bottom:24px}.contact-form-foot{display:block;margin-top:10px}.contact-form-foot .consent{margin-bottom:27px;font-size:11px}.contact-form button{display:flex;justify-content:space-between;width:100%}}

/* Refined photo motion for the service overview. */
.photo-reveal{opacity:0;transform:translateY(28px);transition:opacity 1s cubic-bezier(.22,1,.36,1),transform 1.15s cubic-bezier(.22,1,.36,1)}
.photo-reveal.is-visible{opacity:1;transform:translateY(0)}
.sub-hero-image.photo-parallax,.detail-image.photo-parallax{position:relative;background-position:center calc(50% + var(--photo-shift,0px));transition:opacity 1s cubic-bezier(.22,1,.36,1),transform 1.15s cubic-bezier(.22,1,.36,1),background-position .18s linear;overflow:hidden}
.sub-hero-image.photo-parallax:after,.detail-image.photo-parallax:after{content:'';position:absolute;inset:0;background:linear-gradient(115deg,rgba(255,255,255,.1),transparent 36%,rgba(5,31,19,.16));opacity:.65;pointer-events:none;transition:opacity .7s ease}.sub-hero-image.photo-parallax:hover:after,.detail-image.photo-parallax:hover:after{opacity:.2}.detail-gallery figure{overflow:hidden}.detail-gallery figure img{transition:transform 1s cubic-bezier(.22,1,.36,1),filter .8s ease;filter:saturate(.9)}.detail-gallery figure:hover img{transform:scale(1.045);filter:saturate(1.08)}.detail-gallery figure:nth-child(2){transition-delay:.12s}.sub-hero-image span{transition:transform .6s ease,opacity .6s ease}.sub-hero-image:hover span{transform:translateY(-5px);opacity:.9}
@media(prefers-reduced-motion:reduce){.photo-reveal,.sub-hero-image.photo-parallax,.detail-image.photo-parallax,.detail-gallery figure img{transition:none}.photo-reveal{opacity:1;transform:none}}

/* Varied image treatments across the four service detail pages. */
.service-page .service-hero-image,.service-page .service-detail-image{position:relative;isolation:isolate;overflow:hidden;transform:translate3d(0,var(--service-scroll,0px),0);will-change:transform,clip-path;transition:transform 1s cubic-bezier(.22,1,.36,1),filter .7s ease,box-shadow .7s ease;animation:servicePhotoIn 1.25s cubic-bezier(.22,1,.36,1) both}.service-page .service-hero-image{clip-path:inset(0 0 0 100%);animation:serviceHeroIn 1.35s .12s cubic-bezier(.22,1,.36,1) forwards;box-shadow:0 28px 60px rgba(17,58,48,.16)}.service-page .service-detail-image{animation:serviceDetailIn 1.2s .28s cubic-bezier(.22,1,.36,1) both;filter:saturate(.86)}.service-page .service-hero-image:before,.service-page .service-detail-image:before{content:'';position:absolute;inset:-20%;z-index:1;pointer-events:none;background:linear-gradient(105deg,transparent 30%,rgba(255,255,255,.22) 48%,transparent 64%);transform:translateX(-115%);transition:transform 1.2s .7s ease}.service-page .service-hero-image:hover,.service-page .service-detail-image:hover{transform:perspective(1200px) rotateX(var(--tilt-x,0deg)) rotateY(var(--tilt-y,0deg)) translate3d(0,-6px,0) scale(1.012);filter:saturate(1.08);box-shadow:0 32px 70px rgba(17,58,48,.24)}.service-page .service-hero-image:hover:before,.service-page .service-detail-image:hover:before{transform:translateX(115%)}
@keyframes serviceHeroIn{from{opacity:0;clip-path:inset(0 0 0 100%);transform:scale(1.07)}to{opacity:1;clip-path:inset(0);transform:scale(1)}}@keyframes serviceDetailIn{from{opacity:0;transform:translateY(34px) scale(1.035)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes servicePhotoIn{from{opacity:0}to{opacity:1}}
@media(max-width:760px){.service-page .service-hero-image,.service-page .service-detail-image{animation-duration:1s}.service-page .service-hero-image:hover,.service-page .service-detail-image:hover{transform:translateY(-3px) scale(1.008)}}
@media(prefers-reduced-motion:reduce){.service-page .service-hero-image,.service-page .service-detail-image{animation:none;clip-path:none;transform:none;transition:none}.service-page .service-hero-image:before,.service-page .service-detail-image:before{display:none}}

/* Keep the second, in-content photo visibly alive after it enters the viewport. */
.service-page .service-detail-image{background-size:110% 110%;background-position:50% 50%;animation:serviceDetailIn 1.2s .28s cubic-bezier(.22,1,.36,1) both,serviceDetailZoom 12s 1.45s ease-in-out infinite alternate}.service-page .service-detail-image:after{content:'';position:absolute;inset:0;pointer-events:none;background:linear-gradient(120deg,transparent 25%,rgba(255,255,255,.2) 48%,transparent 68%);background-size:220% 100%;background-position:-120% 0;mix-blend-mode:screen;opacity:.35;animation:serviceDetailShine 9s 2s ease-in-out infinite}.service-page .service-detail-image:hover{background-size:116% 116%;transition:background-size 1.1s cubic-bezier(.22,1,.36,1),transform .7s cubic-bezier(.22,1,.36,1),filter .7s ease,box-shadow .7s ease}.service-page .service-detail-image:hover:after{opacity:.7;animation-duration:3.5s}@keyframes serviceDetailZoom{from{background-size:108% 108%;background-position:48% 50%}to{background-size:116% 116%;background-position:54% 46%}}@keyframes serviceDetailShine{0%,35%{background-position:-120% 0}65%,100%{background-position:120% 0}}
@media(prefers-reduced-motion:reduce){.service-page .service-detail-image{animation:none;background-size:cover}.service-page .service-detail-image:after{animation:none;display:none}}

/* Unique motion language per service page — no repeated photo treatment. */
.service-page .service-hero-image[style*="13_project"],.service-page .service-detail-image[style*="26_project"]{animation:designReveal 1.35s cubic-bezier(.22,1,.36,1) both;transform-origin:left center}.service-page .service-hero-image[style*="13_project"]:before,.service-page .service-detail-image[style*="26_project"]:before{animation:designSweep 7s 1.2s ease-in-out infinite}.service-page .service-hero-image[style*="13_project"]:hover,.service-page .service-detail-image[style*="26_project"]:hover{transform:scale(1.035) translateX(8px)}
.service-page .service-hero-image[style*="39_project"],.service-page .service-detail-image[style*="04_project"]{animation:outdoorWipe 1.4s cubic-bezier(.22,1,.36,1) both;transform-origin:center bottom}.service-page .service-hero-image[style*="39_project"]:before,.service-page .service-detail-image[style*="04_project"]:before{animation:outdoorGlint 5.5s 1s ease-in-out infinite}.service-page .service-hero-image[style*="39_project"]:hover,.service-page .service-detail-image[style*="04_project"]:hover{transform:perspective(1000px) rotateY(-2deg) rotateX(1deg) scale(1.025)}
.service-page .service-hero-image[style*="34_project"],.service-page .service-detail-image[style*="36_project"]{animation:gardenRise 1.55s cubic-bezier(.22,1,.36,1) both;transform-origin:center bottom}.service-page .service-hero-image[style*="34_project"]:before,.service-page .service-detail-image[style*="36_project"]:before{animation:gardenFloat 9s ease-in-out infinite alternate}.service-page .service-hero-image[style*="34_project"]:hover,.service-page .service-detail-image[style*="36_project"]:hover{transform:translateY(-12px) scale(1.018)}
.service-page .service-hero-image[style*="05_project"],.service-page .service-detail-image[style*="05_project"]{animation:treeCircle 1.65s cubic-bezier(.22,1,.36,1) both;filter:grayscale(.9) saturate(.65);transform-origin:center}.service-page .service-hero-image[style*="05_project"]:before,.service-page .service-detail-image[style*="05_project"]:before{animation:treeColor 4.5s 1.4s ease-in-out infinite}.service-page .service-hero-image[style*="05_project"]:hover,.service-page .service-detail-image[style*="05_project"]:hover{filter:grayscale(0) saturate(1.12);transform:scale(1.03)}
@keyframes designReveal{from{opacity:0;clip-path:inset(0 100% 0 0);transform:scale(1.09)}to{opacity:1;clip-path:inset(0);transform:scale(1)}}@keyframes designSweep{0%,35%{transform:translateX(-115%)}70%,100%{transform:translateX(115%)}}
@keyframes outdoorWipe{from{opacity:0;clip-path:polygon(0 0,0 0,0 100%,0 100%);transform:rotate(-1.5deg) scale(1.08)}to{opacity:1;clip-path:polygon(0 0,100% 0,100% 100%,0 100%);transform:rotate(0) scale(1)}}@keyframes outdoorGlint{0%,25%{transform:translateX(-120%) rotate(7deg)}65%,100%{transform:translateX(120%) rotate(7deg)}}
@keyframes gardenRise{from{opacity:0;transform:translateY(46px) scale(1.06);filter:blur(3px)}to{opacity:1;transform:translateY(0) scale(1);filter:blur(0)}}@keyframes gardenFloat{from{transform:translateY(-2%) scale(1.01)}to{transform:translateY(2%) scale(1.04)}}
@keyframes treeCircle{from{opacity:0;clip-path:circle(0% at 50% 50%);transform:scale(.9)}to{opacity:1;clip-path:circle(100% at 50% 50%);transform:scale(1)}}@keyframes treeColor{0%,35%{opacity:.1;transform:scale(.92)}65%,100%{opacity:.62;transform:scale(1.12)}}
@media(prefers-reduced-motion:reduce){.service-page .service-hero-image[style],.service-page .service-detail-image[style]{animation:none;clip-path:none;filter:none;transform:none}.service-page .service-hero-image[style]:before,.service-page .service-detail-image[style]:before{animation:none}}
