/* Concept 02 motion refinement. Layout and brand palette stay in concept-v2.css. */
/* Replace stacked section entrances with short, independent gallery cues. */
.gallery-scroll.js-motion .reveal,.gallery-scroll.js-motion .motion-child{opacity:1;transform:none;transition:none}
.gallery-scroll .section-label:after{display:none}
.gallery-artwork::after{content:'';position:absolute;inset:0;background:#141414;z-index:1;pointer-events:none;transform:scaleX(1);transform-origin:right;transition:transform 1.1s cubic-bezier(.22,1,.36,1)}
.gallery-artwork.gallery-open::after{transform:scaleX(0)}
.motion-paused .gallery-artwork::after{transform:scaleX(0);transition:none}
@media(max-width:680px){.gallery-artwork::after{transition-duration:.85s}}
@media(prefers-reduced-motion:reduce){.gallery-artwork::after{transform:scaleX(0);transition:none}}
.hero-art{isolation:isolate;pointer-events:none}
.hero-art img{animation:ambient-float 28s ease-in-out infinite,ambient-lustre 19s ease-in-out infinite;animation-play-state:var(--ambient-play,running);transform-origin:72% 52%;transition:none;translate:none;will-change:transform}
.hero-art:after{content:'';position:absolute;inset:-15% -10% -15% 38%;background:linear-gradient(108deg,transparent 30%,rgba(255,255,255,.04) 40%,rgba(255,255,255,.26) 50%,rgba(255,255,255,.05) 60%,transparent 72%);mix-blend-mode:soft-light;pointer-events:none;animation:satin-light 21s ease-in-out infinite;animation-delay:-5s;animation-play-state:var(--ambient-play,running);will-change:transform,opacity}
@keyframes ambient-float{0%,100%{transform:scale(1.035) translate3d(-.15%,.25%,0) rotate(-.12deg)}50%{transform:scale(1.055) translate3d(.35%,-.45%,0) rotate(.12deg)}}
@keyframes ambient-lustre{0%,100%{filter:brightness(1) contrast(1)}50%{filter:brightness(1.035) contrast(1.018)}}
@keyframes satin-light{0%,100%{transform:translate3d(-35%,2%,0);opacity:0}18%{opacity:.12}48%{opacity:.62}78%{opacity:.1}90%{transform:translate3d(32%,-2%,0);opacity:0}}
.hero h1>span{animation-name:headline-curtain;animation-duration:1.4s}
.hero h1 em{animation-name:headline-curtain;animation-duration:1.65s;animation-delay:.15s}
@keyframes headline-curtain{from{opacity:0;clip-path:inset(0 0 100% 0);transform:translateY(35px)}to{opacity:1;clip-path:inset(-20% -5% -25% -5%);transform:translateY(0)}}
.motion-enhanced .manifesto h2>.manifesto-emphasis{background:linear-gradient(90deg,#111 var(--read-progress,0%),#8c8c8c var(--read-progress,0%));background-clip:text;-webkit-background-clip:text;color:transparent}
.js-motion .motion-child{opacity:0;transform:translateY(20px);transition:opacity .7s var(--stagger,0ms),transform .85s cubic-bezier(.22,1,.36,1) var(--stagger,0ms)}
.js-motion .visible>.motion-child{opacity:1;transform:none}
.section-label{position:relative}
.section-label:after{content:'';position:absolute;bottom:-19px;left:0;right:0;height:1px;background:currentColor;opacity:.12;transform:scaleX(0);transform-origin:left;transition:transform 1.1s cubic-bezier(.22,1,.36,1)}
.section-label.visible:after{transform:scaleX(1)}
.expertise-item summary{transition:padding-left .4s cubic-bezier(.22,1,.36,1),color .25s}
.expertise-item summary:hover{padding-left:8px}
.expertise-item h3{transition:transform .4s cubic-bezier(.22,1,.36,1)}
.expertise-item summary:hover h3{transform:translateX(5px)}
.expertise-body{box-sizing:border-box;min-height:0}
.journal a{position:relative;isolation:isolate}
.journal a:before{content:'';position:absolute;inset:0 -12px;background:#e4e4e2;z-index:-1;transform:scaleY(0);transform-origin:bottom;transition:transform .35s cubic-bezier(.22,1,.36,1)}
.journal a:hover:before,.journal a:focus-visible:before{transform:scaleY(1)}
.journal a>b{transition:transform .35s}
.journal a:hover>b{transform:translate(3px,-3px)}
.project-rail.dragging{scroll-snap-type:none;scroll-behavior:auto;cursor:grabbing;user-select:none}
.project-rail.dragging *{cursor:grabbing!important}
.project-rail.dragging .project-view{opacity:0!important}
dialog[open]{animation:dialog-entrance .45s cubic-bezier(.22,1,.36,1)}
dialog[open]::backdrop{animation:backdrop-entrance .35s ease-out}
@keyframes dialog-entrance{from{opacity:0;transform:translateY(24px) scale(.985)}to{opacity:1;transform:none}}
@keyframes backdrop-entrance{from{opacity:0}to{opacity:1}}
@media(hover:hover) and (pointer:fine) and (min-width:681px){
 .project-rail{cursor:grab}
 .brand-list>span{transition:opacity .3s,transform .4s}
 .brand-list:hover>span{opacity:.35}
 .brand-list>span:hover{opacity:1;transform:translateY(-4px)}
}
@media(max-width:680px){
 .hero-art img{animation:ambient-float-mobile 32s ease-in-out infinite;animation-play-state:var(--ambient-play,running)}
 .hero-art:after{left:25%;animation-duration:26s}
 .js-motion .motion-child{transform:translateY(10px);transition-duration:.45s}
 .section-label:after{bottom:-14px}
 .expertise-item summary:hover{padding-left:0}
 .expertise-item summary:hover h3{transform:none}
}
@keyframes ambient-float-mobile{0%,100%{transform:scale(1.025) translateY(.15%)}50%{transform:scale(1.04) translateY(-.3%)}}
.project-image>img,.project:hover .project-image>img{transform:none;scale:none;transition:none}
.project-view,.project:hover .project-view,.project:focus-visible .project-view{transform:none;transition:opacity .35s}
.motion-paused .hero-art img{animation:none!important;filter:none}
.motion-paused .hero-art:after{animation:none!important;opacity:0}
.motion-paused .hero-copy *,.motion-paused dialog[open]{animation:none!important}
.motion-paused .hero-copy,.motion-paused .hero-art img,.motion-paused .motion-child,.motion-paused .magnetic{translate:none!important;transform:none!important;opacity:1!important;transition:none!important}
.motion-paused .section-label:after{transform:scaleX(1);transition:none}
.motion-paused .expertise-item summary,.motion-paused .expertise-item h3,.motion-paused .journal a:before,.motion-paused .brand-list>span,.motion-paused .project-image>img{transition:none;transform:none}
@media(prefers-reduced-motion:reduce){
 .js-motion .motion-child{opacity:1;transform:none}
 .hero-copy,.hero-art img,.magnetic{translate:none!important;transform:none!important}
 .section-label:after{transform:scaleX(1)}
 .expertise-item summary:hover{padding-left:0}
 .expertise-item summary:hover h3,.brand-list>span:hover{transform:none}
 dialog[open],dialog[open]::backdrop{animation:none}
 .hero-art:after{animation:none;opacity:0}
 .hero-art img{animation:none;filter:none}
}
