/* Editorial motion: one entrance, no change to layout or image cropping. */
:root{--motion-duration:860ms;--motion-distance:28px;--motion-ease:cubic-bezier(.16,1,.3,1)}
@keyframes pcj-enter{
 from{opacity:0;transform:translateY(var(--motion-distance))}
 to{opacity:1;transform:translateY(0)}
}
@keyframes pcj-line{
 from{transform:scaleX(0)}
 to{transform:scaleX(1)}
}
@keyframes pcj-dialog{from{opacity:0}to{opacity:1}}
@keyframes pcj-unveil{
 from{opacity:.001;clip-path:inset(0 0 100% 0)}
 to{opacity:1;clip-path:inset(0 0 0 0)}
}
/* Added only after observation succeeds; absent when scripts cannot run. */
.pcj-motion-waiting{opacity:0}
.pcj-reveal{animation:pcj-enter var(--motion-duration) var(--motion-ease) var(--motion-delay,0ms) backwards}
.pcj-reveal[data-motion=image]{animation:pcj-unveil 1100ms cubic-bezier(.65,0,.15,1) var(--motion-delay,0ms) backwards}
.pcj-reveal .eyebrow:before,.eyebrow.pcj-reveal:before{
 transform-origin:left center;
 animation:pcj-line 480ms var(--motion-ease) var(--motion-delay,0ms) backwards;
}
/* A keyboard user can act immediately, even during the entrance. */
.pcj-reveal:focus-within{animation:none}
.button>span[aria-hidden],.text-link>span[aria-hidden]{display:inline-block;transition:transform var(--fast) var(--ease)}
@media(hover:hover) and (pointer:fine){
 .button:hover>span[aria-hidden],.text-link:hover>span[aria-hidden]{transform:translate(4px,-4px)}
 /* Cards answer the pointer; photos breathe within their frame. */
 .voice-card,.coach-card,.consensus-plans article,.strength-list article,.plan-grid article,.scope-list li,.principle-list>div{transition:transform 420ms var(--motion-ease),box-shadow 420ms var(--motion-ease),border-color 420ms var(--motion-ease)}
 .voice-card:hover,.coach-card:hover,.consensus-plans article:hover,.strength-list article:hover,.plan-grid article:hover,.scope-list li:hover{transform:translateY(-4px);box-shadow:0 18px 40px rgba(52,59,53,.09)}
 .service-row figure,.note-cover,.phase-image,.consensus-figure{overflow:hidden}
 .service-row figure img,.note-cover img,.phase-image img,.consensus-figure img{transition:transform 1200ms var(--motion-ease)}
 .service-row:hover figure img,.note-row:hover .note-cover img,.phase-grid article:hover .phase-image img,.consensus-figure:hover img{transform:scale(1.035)}
 .text-link{background:linear-gradient(var(--ink),var(--ink)) left bottom/0 1px no-repeat;transition:background-size 420ms var(--motion-ease),border-color var(--fast)}
 .text-link:hover{background-size:100% 1px}
}
.button{transition:color var(--fast),background 320ms var(--motion-ease),border-color var(--fast),transform 320ms var(--motion-ease),box-shadow 320ms var(--motion-ease)}
@media(hover:hover) and (pointer:fine){.button:hover{transform:translateY(-2px);box-shadow:0 10px 24px rgba(52,59,53,.16)}}
.site-header{transition:box-shadow 320ms var(--motion-ease),background-color 320ms var(--motion-ease)}
.site-header.is-scrolled{background:rgba(251,249,246,.94);box-shadow:0 10px 30px rgba(52,59,53,.06)}
@supports(backdrop-filter:blur(8px)){.site-header.is-scrolled{background:rgba(251,249,246,.82);backdrop-filter:saturate(1.2) blur(10px)}}
.rep-orientation[open],.rep-interview[open],.mobile-menu[open]{animation:pcj-dialog 200ms var(--motion-ease)}
dialog[open]::backdrop{animation:pcj-dialog 200ms var(--motion-ease)}
@media(max-width:700px){
 :root{--motion-duration:620ms;--motion-distance:18px}
 .pcj-reveal[data-motion=image]{animation-duration:820ms}
 .pcj-reveal .eyebrow:before,.eyebrow.pcj-reveal:before{animation-duration:360ms}
}
@media(prefers-reduced-motion:reduce){
 .pcj-motion-waiting,.pcj-reveal,.pcj-reveal .eyebrow:before,.eyebrow.pcj-reveal:before,
 .rep-orientation[open],.rep-interview[open],.mobile-menu[open],dialog[open]::backdrop{animation:none!important;transform:none!important;opacity:1!important}
 .button>span[aria-hidden],.text-link>span[aria-hidden],.button,.site-header,.service-row figure img,.note-cover img,.phase-image img,.consensus-figure img,.voice-card,.coach-card,.consensus-plans article,.strength-list article,.plan-grid article,.scope-list li{transition:none!important;transform:none!important}
}
@media print{.pcj-motion-waiting,.pcj-reveal{animation:none!important;transform:none!important;opacity:1!important}}
