/* Shared interaction layer */
:where(a,button,input,select,textarea):focus-visible{outline:3px solid #f2c84b;outline-offset:3px}:where(button,a){-webkit-tap-highlight-color:transparent}.menu{cursor:pointer;transition:transform .3s,background-color .3s}.menu:hover{transform:scale(1.08)}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto!important}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
.top-cta,.closing>a,.contact-strip>a,.properties-head>a,.similar-head>a,.feature article>a,.why-copy>a{transition:transform .35s cubic-bezier(.16,1,.3,1),box-shadow .35s,background-color .35s,color .35s}.top-cta:hover,.closing>a:hover,.contact-strip>a:hover,.properties-head>a:hover,.similar-head>a:hover,.feature article>a:hover,.why-copy>a:hover{transform:translateY(-3px);box-shadow:0 15px 30px #183c582e}.top-cta:active,.closing>a:active,.contact-strip>a:active{transform:translateY(0) scale(.98)}
@media(max-width:820px){body.menu-open{overflow:hidden}body.menu-open:before{content:'';position:fixed;z-index:80;inset:0;background:#0d1b28a8;backdrop-filter:blur(5px)}body.menu-open header{z-index:100}body.menu-open header nav{position:fixed;z-index:101;display:flex!important;left:24px;right:24px;top:84px;padding:18px;flex-direction:column;gap:5px;border-radius:24px;background:#fff;box-shadow:0 25px 65px #07152255}body.menu-open header nav a{display:flex;padding:15px 17px;border-radius:14px;color:#17202f!important;font-size:.82rem!important;font-weight:700}body.menu-open header nav a:hover,body.menu-open header nav a.active{background:#e5f3fc;color:#2476b8!important}body.menu-open header nav a:after{display:none}.menu-open .menu{position:relative;z-index:102;transform:rotate(90deg)}.menu{width:44px!important;height:44px!important;display:grid!important;place-items:center;padding:0!important}.popular-head button{width:42px!important;height:42px;font-size:1.15rem}.track article{cursor:pointer}.track article:focus-visible{outline:3px solid #f2c84b;outline-offset:4px;border-radius:12px}footer>div a,.site-footer>div a{display:inline-flex;min-height:36px;align-items:center;padding:8px 0}}
.page{animation:page-arrive .6s cubic-bezier(.16,1,.3,1) both;transition:opacity .22s ease,transform .22s ease}.page-leaving .page{opacity:0;transform:translateY(-8px)}@keyframes page-arrive{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}.scroll-top{position:fixed;z-index:65;right:24px;bottom:24px;width:46px;height:46px;border:0;border-radius:50%;background:#17202f;color:#fff;box-shadow:0 14px 32px #10263845;cursor:pointer;opacity:0;pointer-events:none;transform:translateY(12px);transition:.3s}.scroll-top.visible{opacity:1;pointer-events:auto;transform:none}.scroll-top:hover{background:#287fc2;transform:translateY(-3px)}@media(max-width:820px){.scroll-top{right:18px;bottom:18px}.has-mobile-cta .scroll-top{bottom:82px}}@media(prefers-reduced-motion:reduce){.page{animation:none}.page-leaving .page{transform:none}.scroll-top{transition:none}}
.arveo-toast{position:fixed;z-index:130;left:50%;bottom:28px;padding:14px 18px;border-radius:999px;background:#17202f;color:#fff;box-shadow:0 18px 45px #10263855;font:700 .68rem Manrope;opacity:0;pointer-events:none;transform:translate(-50%,14px);transition:.35s cubic-bezier(.16,1,.3,1);white-space:nowrap}.arveo-toast.show{opacity:1;transform:translate(-50%,0)}@media(max-width:820px){.arveo-toast{bottom:82px;max-width:calc(100% - 40px);font-size:.62rem}.has-mobile-cta .arveo-toast{bottom:140px}}

/* Shared motion system: reveal once, then return transform control to components. */
.reveal{opacity:0!important;transform:translate3d(0,34px,0)!important;transition:opacity .72s cubic-bezier(.22,1,.36,1),transform .82s cubic-bezier(.22,1,.36,1)!important;transition-delay:var(--reveal-delay,0ms)!important;will-change:opacity,transform}
.reveal.visible{opacity:1!important;transform:translate3d(0,0,0)!important}
.reveal.motion-complete{will-change:auto}

/* A readable exit plus a calm arrival for same-origin document navigation. */
.page{animation:arveo-page-in .78s cubic-bezier(.22,1,.36,1) both!important;transform-origin:50% 18%;transition:opacity .38s cubic-bezier(.4,0,1,1),transform .38s cubic-bezier(.4,0,1,1),filter .38s ease!important}
.page-leaving .page{opacity:0!important;transform:translate3d(0,-10px,0) scale(.992)!important;filter:saturate(.92)!important}
@keyframes arveo-page-in{0%{opacity:0;transform:translate3d(0,18px,0) scale(.994);filter:saturate(.92)}100%{opacity:1;transform:none;filter:none}}
@media(prefers-reduced-motion:reduce){.reveal,.reveal.visible{opacity:1!important;transform:none!important;transition:none!important}.page{animation:none!important;transition:none!important}.page-leaving .page{opacity:1!important;transform:none!important;filter:none!important}}

/* Homepage depth and tactile feedback. */
.reveal.reveal-text{transform:translate3d(0,22px,0)!important}
.reveal.reveal-text.visible{transform:translate3d(0,0,0)!important}
@media(hover:hover) and (pointer:fine){
  .life,.agent-grid article,.service-card,.messages article,.quote-bubbles blockquote,.feature-image,.contact-bubble{transition:transform .55s cubic-bezier(.16,1,.3,1),box-shadow .55s cubic-bezier(.16,1,.3,1),filter .45s ease}
  .life:hover{transform:translateY(-8px);box-shadow:0 28px 55px #173b572b}
  .life:hover img{transform:scale(1.065)}
  .float-cards article:hover{transform:translate3d(-10px,-7px,0);box-shadow:0 28px 55px #367aad2c}
  .agent-grid article:hover{transform:translateY(-9px);box-shadow:0 26px 52px #2a668f2b}
  .agent-grid article:hover img{transform:scale(1.035);filter:saturate(1)}
  .agent-grid img{transition:transform .7s cubic-bezier(.16,1,.3,1),filter .5s ease}
  .messages article:hover{transform:translateY(-5px) scale(1.012);box-shadow:0 24px 48px #0003}
  .quote-bubbles blockquote:hover{transform:translateY(-7px);box-shadow:0 24px 48px #28658e20}
  .feature-image:hover{transform:translateY(-7px);filter:saturate(1.04);box-shadow:0 30px 60px #1d537928}
  .contact-bubble:hover{transform:translateY(-5px);box-shadow:0 36px 78px #286ba340}
  .service-card:hover{transform:translateY(-8px);box-shadow:0 26px 55px #286a9e2d}
}

/* Visible cross-document route curtain. */
.route-curtain{position:fixed;z-index:999;inset:-1px;background:linear-gradient(145deg,#347fc5,#72baf2);pointer-events:none;transform:scaleY(1);transform-origin:top;transition:transform .64s cubic-bezier(.76,0,.24,1);will-change:transform}
.route-curtain.ready{transform:scaleY(0)}
.page-leaving .route-curtain{transform:scaleY(1);transform-origin:bottom;transition-duration:.52s}

/* About: all visual cards receive their own motion after the one-shot reveal. */
@media(hover:hover) and (pointer:fine){
  .story-photo,.people-row>article,.people-row>aside,.hero-visual,.manifest{transition:transform .55s cubic-bezier(.16,1,.3,1),box-shadow .55s cubic-bezier(.16,1,.3,1),filter .45s ease}
  .story-photo:hover{transform:translateY(-7px);box-shadow:0 28px 58px #245f8826}
  .story-photo img,.people-row img,.hero-visual>img{transition:transform .75s cubic-bezier(.16,1,.3,1),filter .45s ease}
  .story-photo:hover img,.people-row>article:hover img,.hero-visual:hover>img{transform:scale(1.035);filter:saturate(1)}
  .people-row>article:hover,.people-row>aside:hover{transform:translateY(-8px);box-shadow:0 26px 52px #28658e24}
  .hero-visual:hover{transform:translateY(-6px)}
  .manifest:hover{transform:translateY(-5px);box-shadow:0 30px 65px #0b203240}
}
@media(prefers-reduced-motion:reduce){.route-curtain{display:none!important}}
