/* Motion extends the existing identity without changing the page structure. */
.reading-progress{position:absolute;bottom:0;left:0;right:0;height:3px;background:var(--lavender);transform:scaleX(var(--page-progress,0));transform-origin:left;pointer-events:none}
.hero-media{position:absolute;inset:-3% 0;transform:translate3d(0,var(--hero-offset,0px),0);will-change:transform}
.hero-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;opacity:0;transition:opacity 1.1s ease}
.hero-video.is-ready{opacity:1}
.hero h1 .hero-line{display:block;overflow:hidden;color:var(--white);padding-bottom:.08em;margin-bottom:-.08em}
.hero h1 .hero-line>span{display:block;color:inherit;transform-origin:left bottom}
.hero h1 .hero-line.accent{color:var(--lavender-light)}
.hero-actions{display:flex;align-items:center;gap:25px}
.video-toggle{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:44px;padding:9px 15px;border:1px solid #ffffff55;border-radius:0;color:var(--white);background:#15181680;font-size:.875rem;cursor:pointer;transition:background .25s,border-color .25s;backdrop-filter:blur(3px)}
.video-toggle[hidden]{display:none}
.video-toggle:hover{background:var(--ink);border-color:var(--lavender)}
.video-toggle-icon{display:inline-block;width:13px;height:13px;border-left:3px solid currentColor;border-right:3px solid currentColor}
.video-toggle.is-paused .video-toggle-icon{width:0;height:0;border-top:6px solid transparent;border-bottom:6px solid transparent;border-left:10px solid currentColor;border-right:0;margin:0 2px 0 1px}
.video-progress{position:absolute;bottom:0;left:0;right:0;height:3px;background:var(--lavender);transform:scaleX(var(--video-progress,0));transform-origin:left;opacity:.7;pointer-events:none}
.reveal{transition:opacity .8s ease,transform .9s cubic-bezier(.16,1,.3,1);transition-delay:var(--reveal-delay,0ms)}
.reveal.is-pending{opacity:0;transform:translate3d(0,32px,0)}
.reveal.is-visible{opacity:1;transform:translate3d(0,0,0)}
.service-figure{isolation:isolate}
.service-figure img{transform:scale(1.04);transition:transform 1.25s cubic-bezier(.16,1,.3,1),filter .7s ease}
.service-figure.is-pending img{transform:scale(1.16)}
.service-figure.is-visible img{transform:scale(1.04)}
.underlined:after{transform:scaleX(1);transform-origin:left;transition:transform .9s cubic-bezier(.16,1,.3,1) .4s}
.is-pending .underlined:after{transform:scaleX(0)}
.label-mark{transition:opacity .65s ease}
.is-pending .label-mark{opacity:0}
.service{position:relative}
.service:after{content:'';position:absolute;bottom:-1px;left:0;right:0;height:2px;background:var(--lavender-deep);transform:scaleX(0);transform-origin:left;transition:transform .5s ease;pointer-events:none}
.service[open]:after,.service:hover:after{transform:scaleX(1)}
.service h3{transition:transform .35s cubic-bezier(.16,1,.3,1)}
.service summary:hover h3{transform:translateX(7px)}
.service-description{animation:none}
.service-band a{transition:background .35s ease,color .35s ease}
.service-band .band-arrow{display:inline-block;transition:transform .4s cubic-bezier(.16,1,.3,1)}
.service-band a:hover .band-arrow{transform:translate(4px,-4px)}
.contact-arrow{transition:background .35s,color .35s,transform .6s cubic-bezier(.16,1,.3,1)}
.contact-arrow:hover{transform:translateY(-4px)}
.round-link span{display:block;transition:transform .3s ease}
.round-link:hover span{transform:translateY(4px)}
.button{transition:background .25s,transform .3s}
.button:hover{transform:translateY(-2px)}
@media(prefers-reduced-motion:no-preference){
  .motion-ready .hero-line>span{animation:hero-line-in 1.1s cubic-bezier(.16,1,.3,1) both}
  .motion-ready .hero-line:nth-child(1)>span{animation-delay:.08s}
  .motion-ready .hero-line:nth-child(2)>span{animation-delay:.2s}
  .motion-ready .hero-line:nth-child(3)>span{animation-delay:.32s}
  .motion-ready .hero .eyebrow{animation:hero-copy-in .8s ease .15s both}
  .motion-ready .hero-bottom{animation:hero-copy-in 1s ease .55s both}
  .motion-ready .hero .small-rule{transform-origin:left;animation:rule-in 1s cubic-bezier(.16,1,.3,1) .35s both}
}
@keyframes hero-line-in{from{transform:translate3d(0,112%,0) rotate(2deg);opacity:0}to{transform:translate3d(0,0,0) rotate(0);opacity:1}}
@keyframes hero-copy-in{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}
@keyframes rule-in{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@media(hover:hover) and (pointer:fine){.service-figure:hover img{transform:scale(1.085);filter:saturate(1) contrast(1.05)}}
@media(max-width:760px){
 .hero-media{inset:0;transform:none;will-change:auto}
 .hero-video{object-position:60% center}
 .hero-bottom{flex-wrap:wrap;gap:22px}
 .hero-bottom p{max-width:100%}
 .hero-actions{width:100%;justify-content:space-between;gap:18px}
 .video-toggle{font-size:.875rem;min-height:44px}
 .hero-actions .round-link{margin-left:auto}
 .reveal.is-pending{transform:translate3d(0,20px,0)}
 .hero h1{margin-top:42px}
}
@media(prefers-reduced-motion:reduce){
 .hero-media,.reveal,.reveal.is-pending,.service-figure img,.service summary:hover h3,.contact-arrow:hover,.button:hover{transform:none!important;will-change:auto}
 .reveal.is-pending{opacity:1!important}
 .hero-video,.video-toggle,.video-progress{display:none!important}
 *,*:before,*:after{animation:none!important;transition:none!important}
}
