/* Home page performance + motion polish (TechFiscal v1.0.13)
   - no live blur filters while scrolling (they repaint the whole card every frame)
   - no backdrop blur behind the sticky header (header is already ~opaque)
   - hero image animates with transform only, so it is visible immediately
   - lightweight WebP background for the scroll-story backdrop
   - consistent transitions on every hover target */
.header,.mobile-nav{-webkit-backdrop-filter:none!important;backdrop-filter:none!important;background:#fff!important}
.audience-card,.audience-handoff .audience-card.reveal-pending{filter:none!important}
.audience-card{will-change:auto}
.scroll-story-ready .audience-card{will-change:transform,opacity}
.hero-landscape picture{display:contents}
.story-backdrop{background:linear-gradient(90deg,#07182ed9,#0b213b9c),url('assets/architecture.jpg') center 48%/cover;background:linear-gradient(90deg,#07182ed9,#0b213b9c),image-set(url('assets/architecture-1672.webp') type('image/webp'),url('assets/architecture.jpg') type('image/jpeg')) center 48%/cover}
.commitment-card .art-disc,.commitment-card .shield-shape,.commitment-card .app-tile,.commitment-card .front-sheet,.firm-stage-card .building-unit,.resource-grid .resource-symbol{transition:transform .35s cubic-bezier(.2,.7,.3,1)}
.commitment-grid article,.firm-stages article,.challenge-list li,.challenge-list li>span{transition:transform .3s cubic-bezier(.2,.7,.3,1),box-shadow .3s ease,background-color .25s ease,border-color .25s ease,color .25s ease}
.service-cta,.header>.button,.header .button.dark,.refined-contact .button.blue,.service-selector button,.tf-footer-contact>a{transition:background-color .25s ease,color .25s ease,box-shadow .25s ease,transform .25s ease,border-color .25s ease}
@media(hover:none){.firm-stages article:hover,.challenge-list li:hover{transform:none}}
/* v1.0.13 hover fixes */
.story-backdrop{pointer-events:none}
.story-opening .hero-secondary{position:relative;z-index:2}
.reveal-pending,.reveal-pending.is-visible{filter:none!important}
.homepage-rest .button,.source-audit .button,.refined-contact .button,.story-opening .button{transition:background-color .25s ease,color .25s ease,box-shadow .25s ease,transform .25s ease}
.homepage-rest .button>span,.source-audit .button>span,.refined-contact .button>span,.story-opening .button>span,.audience-card>a>span{transition:transform .25s ease}
@media(hover:hover){
 .homepage-rest .button:hover,.source-audit .button:hover,.refined-contact .button:hover,.story-opening .button:hover{transform:translateY(-2px);box-shadow:0 12px 26px -12px rgba(0,0,135,.45)}
 .source-audit .button.blue:hover{background:#eef3ff;color:#000087}
 .refined-contact .button.blue:hover{background:#162bb1}
 .homepage-rest .button:hover>span,.source-audit .button:hover>span,.refined-contact .button:hover>span,.story-opening .button:hover>span,.audience-card>a:hover>span{transform:translate(3px,-3px)}
 .audience-card>a{transition:background-color .25s ease}
 .audience-card>a:hover{background:#162bb1!important}
 .story-opening .hero-secondary:hover{color:#000087}
}
@media(prefers-reduced-motion:reduce){.homepage-rest .button:hover,.source-audit .button:hover,.refined-contact .button:hover,.story-opening .button:hover{transform:none}}
/* Hero shows immediately: no entrance animation (it used to appear, vanish and fade in again on first load) */
.motion-ready .story-opening .hero-top,.motion-ready .story-opening h1,.motion-ready .story-opening .hero-copy,.motion-ready .hero-landscape,.story-opening .hero-top,.story-opening h1,.story-opening .hero-copy,.hero-landscape{animation:none!important;opacity:1;filter:none}
/* Security scene: keep the scroll-linked cards working on shorter laptop screens / browser zoom */
@media(min-width:761px) and (max-height:699px){
 .is-pinned-scene.security-journey{height:calc(100svh - 100px + var(--chapter-distance) * 4)}
 .is-pinned-scene .security-stage{top:84px;height:calc(100svh - 100px)}
 .is-pinned-scene .security-model,.is-pinned-scene .security-chapters{height:calc(100svh - 100px)}
 .is-pinned-scene .security-model{overflow:hidden}
 .is-pinned-scene .layer-stack{transform:scale(.84);transform-origin:50% 20%}
 .is-pinned-scene .model-note{display:none}
}
/* Keep "Your systems. Your people." clear of the card stack */
@media(min-height:700px){.is-pinned-scene .model-note{z-index:2;transform:translateY(22px)}}
