/* Editorial motion, progressively enhanced. Controls keep their original positions. */
:is(#yz-renewal,body.yz-motion-page main#main){--yzm-ease:cubic-bezier(.22,.61,.36,1);--yzm-reveal:980ms;--yzm-hover:320ms;--yzm-fade:1600ms}
@keyframes yzm-enter{from{opacity:0;transform:translate3d(0,var(--yzm-distance,24px),0)}to{opacity:1;transform:translate3d(0,0,0)}}
@keyframes yzm-crossfade{from{opacity:0}to{opacity:1}}
@keyframes yzm-zoom{from{transform:scale(1)}to{transform:scale(1.04)}}
@keyframes yzm-background-settle{from{transform:scale(1.065)}to{transform:scale(1)}}
@keyframes yzm-photo-settle{from{transform:scale(1.055)}to{transform:scale(1)}}
:is(#yz-renewal,body.yz-motion-page main#main) .yzm-enter{animation:yzm-enter var(--yzm-reveal) var(--yzm-ease) var(--yzm-delay,0ms) both}
#yz-renewal .yzm-slides{position:relative;isolation:isolate;aspect-ratio:3/2;overflow:hidden;background:var(--yg-ivory,#f8f6f0);box-shadow:0 24px 48px #203c4214}
#yz-renewal .yzm-slide{position:absolute;inset:0;display:block;opacity:0;z-index:0;pointer-events:none}
#yz-renewal .yzm-slide.is-previous{opacity:1;z-index:1}
#yz-renewal .yzm-slide.is-current{opacity:1;z-index:2;animation:yzm-crossfade var(--yzm-fade) var(--yzm-ease) both}
#yz-renewal .yzm-slide.is-initial{animation:none}
#yz-renewal:is(.yz-page-ja,.yz-page-en) .yg-hero-art .yzm-slide img{display:block;width:100%;height:100%;aspect-ratio:auto;max-height:none;object-fit:cover;box-shadow:none;transform:scale(1)}
#yz-renewal .yzm-slide.is-current img{animation:yzm-zoom 8.1s var(--yzm-ease) both;animation-play-state:paused}
#yz-renewal:is(.yz-page-ja,.yz-page-en) .yg-hero-art .yzm-slide.is-previous img{transform:scale(1.04)}
#yz-renewal .yzm-playing .yzm-slide.is-current img{animation-play-state:running}
#yz-renewal .yzm-slide-office img{object-position:center 67%}
#yz-renewal:is(.yz-page-ja,.yz-page-en) :is(.yg-service-grid>section.yzm-card,.yr-post-card.yzm-card,.yzm-card){transition:transform var(--yzm-hover) var(--yzm-ease),box-shadow var(--yzm-hover) var(--yzm-ease),border-color var(--yzm-hover) var(--yzm-ease)}
#yz-renewal .yzm-photo{overflow:hidden}
#yz-renewal .yzm-photo img{transition:transform 900ms var(--yzm-ease)}
#yz-renewal:is(.yz-page-ja,.yz-page-en) a,#yz-renewal:is(.yz-page-ja,.yz-page-en) button{transition:background-color var(--yzm-hover) var(--yzm-ease),color var(--yzm-hover) var(--yzm-ease),border-color var(--yzm-hover) var(--yzm-ease),box-shadow var(--yzm-hover) var(--yzm-ease)}
@media(hover:hover) and (pointer:fine){
 #yz-renewal:is(.yz-page-ja,.yz-page-en) :is(.yg-service-grid>section.yzm-card,.yr-post-card.yzm-card,.yzm-card):hover{border-color:#b29a67;transform:translateY(-4px);box-shadow:0 16px 30px #203c4212}
 #yz-renewal .yzm-photo:hover img{transform:scale(1.035)}
}
@media(max-width:762px){:is(#yz-renewal,body.yz-motion-page main#main){--yzm-reveal:820ms;--yzm-distance:16px}}
@media(prefers-reduced-motion:reduce){
 :is(#yz-renewal,body.yz-motion-page main#main) .yzm-enter{animation:none!important;opacity:1!important;transform:none!important}
 #yz-renewal .yzm-slide,#yz-renewal .yzm-slide img,#yz-renewal .yzm-photo img{animation:none!important;transition:none!important;transform:none!important}
 #yz-renewal:is(.yz-page-ja,.yz-page-en) :is(.yg-service-grid>section.yzm-card,.yr-post-card.yzm-card,.yzm-card),#yz-renewal a,#yz-renewal button{transition:none!important}
}
@media print{:is(#yz-renewal,body.yz-motion-page main#main) .yzm-enter{animation:none!important;opacity:1!important;transform:none!important}#yz-renewal .yzm-slide{display:none!important}#yz-renewal .yzm-slide:first-child{display:block!important;opacity:1!important}#yz-renewal .yzm-slide img{animation:none!important;transform:none!important}}

/* Heading, paragraph and photo rhythms share one easing curve. */
/* Keep the existing Astra article logo and menu together on the narrowest phones. */
@media(max-width:380px){body.yz-motion-page #ast-mobile-header .custom-logo{max-width:calc(100vw - 90px);height:auto}}
:is(#yz-renewal,body.yz-motion-page main#main) .yzm-heading{--yzm-reveal:1100ms;--yzm-distance:28px}
:is(#yz-renewal,body.yz-motion-page main#main) .yzm-image-reveal{--yzm-reveal:1300ms;--yzm-distance:22px}
#yz-renewal .yzm-photo.yzm-enter img{animation:yzm-photo-settle 1200ms var(--yzm-ease) both}
#yz-renewal.yz-visual-ready .vz-static-background.yzm-background-enter img{animation:yzm-background-settle 4600ms var(--yzm-ease) both}
:is(#yz-renewal,body.yz-motion-page main#main) .yzm-enter:focus-within,
:is(#yz-renewal,body.yz-motion-page main#main) .yzm-enter:target{animation:none!important;opacity:1!important;transform:none!important}
@media(max-width:762px){
 :is(#yz-renewal,body.yz-motion-page main#main) .yzm-heading{--yzm-reveal:900ms;--yzm-distance:20px}
 :is(#yz-renewal,body.yz-motion-page main#main) .yzm-image-reveal{--yzm-reveal:1050ms;--yzm-distance:16px}
}
/* Runtime preference changes and the actual OS preference have identical safe states. */
:is(#yz-renewal,body.yz-motion-page main#main).yzm-reduced :is(.yzm-enter,.yzm-card,.yzm-photo img,.yzm-slide,.yzm-slide img,.yzm-background img){animation:none!important;transition:none!important;transform:none!important}
:is(#yz-renewal,body.yz-motion-page main#main).yzm-reduced .yzm-enter{opacity:1!important}
@media(prefers-reduced-motion:reduce){
 :is(#yz-renewal,body.yz-motion-page main#main) :is(.yzm-enter,.yzm-card,.yzm-photo img,.yzm-slide,.yzm-slide img,.yzm-background img){animation:none!important;transition:none!important;transform:none!important}
 :is(#yz-renewal,body.yz-motion-page main#main) .yzm-enter{opacity:1!important}
}
@media print{
 :is(#yz-renewal,body.yz-motion-page main#main) :is(.yzm-enter,.yzm-background img,.yzm-photo img){animation:none!important;transition:none!important;transform:none!important;opacity:1!important}
}
