.scroll-progress{position:fixed;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,#a18a65,#ffe9be,#fff);transform:scaleX(0);transform-origin:left;z-index:100;pointer-events:none;box-shadow:0 0 18px #f8d599;will-change:transform}.hero{isolation:isolate}.hero-image{transform:scale(1.08);will-change:transform}.light-stage{position:absolute;inset:0;overflow:hidden;pointer-events:none;mix-blend-mode:screen}.light-beam{position:absolute;top:-65%;left:30%;width:20%;height:200%;background:linear-gradient(90deg,transparent,#efcf9630 30%,#fff4d375 48%,#ffe9b833 60%,transparent);transform:rotate(32deg);filter:blur(30px);transform-origin:top center;opacity:.65;animation:beam-drift 15s ease-in-out infinite alternate}.beam-two{left:70%;width:12%;opacity:.25;animation-duration:21s;animation-delay:-7s;background:linear-gradient(90deg,transparent,#d9e7ff90,transparent)}.beam-three{left:80%;width:2%;opacity:.6;filter:blur(8px);animation-duration:18s;animation-delay:-11s}.pointer-glow{position:absolute;width:750px;height:750px;left:0;top:0;border-radius:50%;background:radial-gradient(circle,#ffdf9b2e,transparent 65%);transform:translate3d(-150px,-250px,0);will-change:transform;opacity:.85}.hero-copy{z-index:2}.hero-copy>*,.hero-bottom{animation:hero-arrive 1.2s cubic-bezier(.2,.7,.2,1) both}.hero-copy>.eyebrow{animation-delay:.1s}.hero-copy>h1{animation-delay:.25s}.hero-copy>.hero-description{animation-delay:.4s}.hero-copy>.button{animation-delay:.55s}.hero-bottom{animation-delay:.7s}.hero h1 em,.statement em{background:linear-gradient(110deg,#a9977a 0%,#e7d3b0 35%,#fff9e9 47%,#c0a37a 58%,#d1be9f 100%);background-size:230% 100%;background-clip:text;-webkit-background-clip:text;color:transparent;animation:title-light 9s ease-in-out infinite alternate}.button{position:relative;overflow:hidden;transition:background .3s,box-shadow .4s,transform .4s cubic-bezier(.2,.8,.2,1)}.button:after{content:'';position:absolute;top:-50%;left:-80%;width:45%;height:200%;background:linear-gradient(90deg,transparent,#ffffff60,transparent);transform:skewX(-25deg);transition:left .8s cubic-bezier(.2,.8,.2,1);pointer-events:none}.button:hover:after{left:150%}.button:hover{box-shadow:0 8px 35px #b7996d25;transform:translateY(-3px)}.button span,.text-link span{transition:transform .35s}.button:hover span,.text-link:hover span{transform:translate(3px,-3px)}.text-link{position:relative}.header nav>a:not(.nav-contact):after{content:'';display:block;height:1px;background:#dcc39f;transform:scaleX(0);transform-origin:left;transition:transform .4s}.header nav>a:hover:after{transform:scaleX(1)}.reveal{transition:opacity .9s cubic-bezier(.2,.65,.2,1),transform 1.1s cubic-bezier(.2,.65,.2,1);transition-delay:var(--delay,0ms)}.motion-enabled .reveal:not(.in-view){opacity:0;transform:translate3d(0,45px,0)}.reveal.in-view{opacity:1;transform:translate3d(0,0,0)}.solutions,.statement{position:relative;isolation:isolate;overflow:hidden}.solutions:before,.statement:before{content:'';position:absolute;z-index:-1;inset:-35%;pointer-events:none;background:radial-gradient(ellipse at 80% 20%,#c9a46a18,transparent 42%),radial-gradient(ellipse at 10% 90%,#b8c6d20c,transparent 45%);animation:ambient-drift 18s ease-in-out infinite alternate}.audiences article{position:relative;isolation:isolate}.audiences article:before{content:'';position:absolute;inset:0;z-index:-1;background:radial-gradient(ellipse at 50% 0,#cbb08314,transparent 75%);opacity:0;transition:opacity .7s}.audiences article:hover:before{opacity:1}.audiences h3{transition:color .4s}.audiences article:hover h3{color:#d6bf9f}.drawing{overflow:hidden}.drawing img{transition:transform 1.2s cubic-bezier(.2,.7,.2,1)}.drawing:hover img{transform:scale(1.035)}.statement blockquote{position:relative}.statement:after{content:'';position:absolute;left:50%;top:0;width:1px;height:75px;background:linear-gradient(#d7b781,transparent);box-shadow:0 0 25px #f7dcb1}.contact{position:relative;overflow:hidden}.contact:before{content:'';position:absolute;top:0;left:6%;right:6%;height:1px;background:linear-gradient(90deg,transparent,#a48e6e,transparent)}
.pointer-glow{position:fixed;z-index:30;width:440px;height:440px;left:0;top:0;pointer-events:none;opacity:0;transform:translate3d(-1000px,-1000px,0);background:radial-gradient(circle,rgba(255,239,199,.25) 0,rgba(248,223,173,.16) 20px,rgba(227,189,126,.065) 65px,transparent 140px);transition:opacity .3s ease;contain:layout style}.pointer-glow.is-active{opacity:.55}.pointer-glow:before,.pointer-glow:after{content:none}
@media(hover:none),(pointer:coarse){.pointer-glow{display:none}}
@keyframes beam-drift{0%{transform:rotate(22deg) translateX(-100px);opacity:.2}50%{opacity:.6}100%{transform:rotate(43deg) translateX(180px);opacity:.35}}
@keyframes title-light{from{background-position:0% 50%}to{background-position:100% 50%}}
@keyframes hero-arrive{from{opacity:0;transform:translateY(26px);filter:blur(5px)}to{opacity:1;transform:translateY(0);filter:blur(0)}}
@keyframes ambient-drift{from{transform:translate(-4%,-2%)}to{transform:translate(5%,4%)}}
@media(max-width:760px){.pointer-glow{display:none}.light-beam{width:25%;filter:blur(18px)}.beam-three{display:none}.hero-image{will-change:auto}.motion-enabled .reveal:not(.in-view){transform:translateY(25px)}.reveal{transition-duration:.7s;transition-delay:0ms}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.motion-enabled .reveal:not(.in-view){opacity:1;transform:none}.hero-image{transform:none!important;will-change:auto}.pointer-glow,.beam-two,.beam-three{display:none}.light-beam{transform:rotate(30deg);opacity:.18}.scroll-progress{display:none}}
/* Editorial motion: staggered projects, soft light, and responsive controls. */
.reference-visual:after{content:'';position:absolute;inset:0;background:linear-gradient(115deg,transparent 25%,#fff3d921 47%,transparent 65%);transform:translateX(-110%);transition:transform 1s cubic-bezier(.2,.7,.2,1);pointer-events:none}
.reference-card{--delay:0ms}.reference-card:nth-child(3n+2){--delay:100ms}.reference-card:nth-child(3n+3){--delay:200ms}
.reference-action{transition:background .35s,transform .35s}.reference-card:focus-within .reference-action{background:#75654e}
.reference-caption{animation:detail-enter .5s ease both}#reference-dialog[open]{animation:detail-enter .45s cubic-bezier(.2,.7,.2,1)}#reference-dialog[open]::backdrop{animation:backdrop-enter .4s ease}
.steps article{transition:border-color .4s}.steps article:hover{border-color:#b69767}.steps .number{transition:color .4s}
.contact input,.contact textarea,.contact select{transition:border-color .3s,box-shadow .3s}.contact input:focus,.contact textarea:focus,.contact select:focus{border-color:#79654a;box-shadow:0 3px 0 -1px #79654a}
.header nav a[aria-current=location]{color:#dcc39f}.header nav a[aria-current=location]:after{transform:scaleX(1)}
@media(hover:hover) and (pointer:fine){.reference-card:hover .reference-visual:after,.reference-card:focus-within .reference-visual:after{transform:translateX(110%)}.reference-card:hover .reference-action{transform:translateY(-4px);background:#75654e}.reference-card:hover .reference-visual img{transform:scale(1.045);filter:saturate(1)}.reference-name{transition:color .4s}.reference-card:hover .reference-name{color:#dcc39f}}
@media(max-width:760px){.header nav.open{animation:menu-enter .35s cubic-bezier(.2,.7,.2,1)}.reference-card{--delay:0ms!important}}
@keyframes detail-enter{from{opacity:0;transform:translateY(18px) scale(.985)}to{opacity:1;transform:none}}
@keyframes backdrop-enter{from{opacity:0}to{opacity:1}}
@keyframes menu-enter{from{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){.reference-visual:after{display:none}}
