/* ARTXUURO, subtle architectural motion system.
   All content remains readable if JavaScript is disabled. */

/* Hero: an optical detail, not an interactive overlay. */
.hero-visual img { animation: artxuuro-hero-drift 19s ease-in-out infinite alternate; transform-origin: 56% 45%; }
@keyframes artxuuro-hero-drift { from {transform:scale(1.018)} to {transform:scale(1.077) translate3d(-.45%,.3%,0)} }
.hero-geometry { position:absolute; z-index:2; top:clamp(31px,4.8vw,74px); right:clamp(22px,4vw,70px); width:clamp(100px,12vw,158px); color:rgba(235,244,246,.84); pointer-events:none; filter:drop-shadow(0 2px 4px rgba(4,13,17,.19)); }
.hero-geometry svg { display:block; width:100%; height:auto; animation: artxuuro-orbit 48s linear infinite; transform-origin:center; }
.hero-geometry-label {display:flex; align-items:center; justify-content:space-between; font-size:7px; font-weight:500; letter-spacing:.12em; margin-top:10px; white-space:nowrap;}
.hero-geometry-label b {font-weight:500; opacity:.68}
@keyframes artxuuro-orbit { to { transform:rotate(360deg); } }
.hero-image-label {z-index:3}

/* Editorial response: a hairline in the margin records reading progress. */
.reading-progress {position:fixed; z-index:500; top:0;left:0; width:100%; height:2px; transform:scaleX(0); transform-origin:left; background:#a5c2ca; pointer-events:none; opacity:.9;}

/* Page entrances and on-scroll reveals; activated only for off-screen elements. */
@keyframes artxuuro-appear {from {opacity:0;transform:translate3d(0,15px,0)} to {opacity:1;transform:translate3d(0,0,0)}}
.hero-copy .hero-index {animation:artxuuro-appear .9s .03s both var(--ease)}
.hero-copy h1 {animation:artxuuro-appear 1s .16s both var(--ease)}
.hero-copy .hero-deck {animation:artxuuro-appear .95s .31s both var(--ease)}
.hero-copy .hero-actions {animation:artxuuro-appear .9s .46s both var(--ease)}
.motion-item {transition:opacity .82s var(--ease), transform .82s var(--ease);transition-delay:var(--reveal-delay,0ms);}
.motion-item:not(.in-view) {opacity:0;transform:translate3d(0,26px,0)}
.motion-item.in-view {opacity:1;transform:translate3d(0,0,0)}

/* The studio's signature is restraint: subtle responses to deliberate actions. */
.service-row-link {transition:padding-left .42s var(--ease),border-color .35s,color .35s;}
.service-row-link .row-arrow {display:block; transition:transform .42s var(--ease),color .3s;}
.service-row-link:hover {padding-left:clamp(5px,1vw,13px); border-color:#83a2ad;}
.service-row-link:hover .row-arrow {transform:translate3d(5px,-5px,0);color:#b1d0d9;}
.service-row-link:hover h3 {color:#edf7fa;}
.work-preview-mat img {transition:transform .8s var(--ease),filter .6s var(--ease);}
.work-entry:hover .work-preview-mat img, .work-entry:focus-within .work-preview-mat img {transform:scale(1.038);filter:saturate(.87) contrast(.99);}
.work-entry .cms-work-link span {display:inline-block; transition:transform .35s var(--ease);}
.work-entry:hover .cms-work-link span, .work-entry:focus-within .cms-work-link span {transform:translate3d(4px,-3px,0);}
.method-steps article, .engagement-options>div {position:relative;}
.method-steps article::before, .engagement-options>div::before {content:"";position:absolute; left:0;top:-1px;height:1px;width:100%;background:#a4c3ce;transform:scaleX(0);transform-origin:left;transition:transform .58s var(--ease);pointer-events:none}
.method-steps article:hover::before, .engagement-options>div:hover::before {transform:scaleX(1)}
.text-link span, .nav-contact span,.contact-cta span,.service-hero-action span,.service-contact-button span,.case-contact-action span {display:inline-block;transition:transform .35s var(--ease)}
.text-link:hover span,.nav-contact:hover span,.contact-cta:hover span,.service-hero-action:hover span,.service-contact-button:hover span {transform:translate3d(3px,-3px,0)}
.service-hero-side {position:relative;}
.service-hero-side::after {content:"";display:block;align-self:flex-end;width:59px;height:59px;margin-top:auto;margin-bottom:12px;opacity:.45;border:1px solid #85a3ae;border-radius:50%;background:linear-gradient(90deg,transparent calc(50% - .5px),#85a3ae 50%,transparent calc(50% + .5px)),linear-gradient(transparent calc(50% - .5px),#85a3ae 50%,transparent calc(50% + .5px));}
.feature-images img, .feature-visual img {transition:transform .95s var(--ease),filter .75s var(--ease)}
.feature-visual:hover img {transform:translateY(-4px)}
.case-study-image img {transition:filter .6s var(--ease)}
.case-study-image:hover img {filter:brightness(1.07)}

@media(max-width:850px){.service-hero-side::after{display:none}}
@media(max-width:650px){.hero-geometry{top:30px;right:24px;width:109px}.hero-geometry-label{font-size:6px}.hero-visual img{animation-duration:25s}.reading-progress{height:2px}}
@media(hover:none){.service-row-link:hover{padding-left:0}.service-row-link:hover .row-arrow{transform:none}.work-entry:hover .work-preview-mat img{transform:none}.feature-visual:hover img{transform:none}}
@media(prefers-reduced-motion:reduce){
 .hero-visual img,.hero-geometry svg,.hero-copy .hero-index,.hero-copy h1,.hero-copy .hero-deck,.hero-copy .hero-actions{animation:none!important}
 .motion-item,.motion-item:not(.in-view),.motion-item.in-view{opacity:1!important;transform:none!important;transition:none!important}
 .service-row-link,.service-row-link .row-arrow,.work-preview-mat img,.work-entry .cms-work-link span,.feature-visual img,.method-steps article::before,.engagement-options>div::before{transition:none!important}
}
