/* Animações progressivas: sem JavaScript, todo conteúdo permanece visível. */
.reading-progress{position:fixed;inset:0 auto auto 0;width:100%;height:2px;z-index:100;background:var(--orange);transform:scaleX(0);transform-origin:left;pointer-events:none}
.motion-toggle{position:absolute;right:20px;bottom:24px;z-index:3;display:flex;align-items:center;gap:8px;border:1px solid #ffffff60;border-radius:2px;padding:9px 12px;background:#12212dbd;color:white;font-size:.75rem;cursor:pointer;min-height:40px}
.motion-toggle:hover{background:#12212d}.motion-toggle:focus-visible{outline-color:#fff}
.motion-enabled .hero-copy{animation:gncc-arrive .85s ease-out both}.motion-enabled .architecture-panel{animation:gncc-arrive 1.1s ease-out both}
.motion-ready .motion-reveal{transition:opacity .65s ease,transform .65s cubic-bezier(.2,.8,.2,1)}
.motion-ready .motion-reveal:not(.is-visible){opacity:0;transform:translateY(20px)}
.process-grid li{position:relative}.process-grid li:before{content:'';position:absolute;top:-1px;left:0;height:2px;width:100%;background:var(--orange);transform:scaleX(0);transform-origin:left;transition:transform .75s ease}.process-grid li.is-current:before{transform:scaleX(1)}.process-grid li.is-current .process-number{color:var(--orange)}
.service-card{transition:background .25s,box-shadow .25s}.service-card:hover{box-shadow:inset 0 3px var(--orange)}
.motion-paused *,.motion-paused *:before,.motion-paused *:after,.tab-inactive *{animation-play-state:paused!important}
.motion-paused *,.motion-paused *:before,.motion-paused *:after{transition:none!important}
html:has(.motion-paused){scroll-behavior:auto}.motion-paused .hero-copy,.motion-paused .architecture-panel{animation:none!important;opacity:1;transform:none}.motion-paused .motion-reveal{opacity:1!important;transform:none!important}.motion-paused .architecture-stage{transform:none!important}
@keyframes gncc-arrive{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:none}}
@media(max-width:640px){.motion-toggle{right:16px;bottom:24px}}
@media(prefers-reduced-motion:reduce){.hero-copy,.architecture-panel{animation:none!important}.architecture-stage{transform:none!important}.motion-ready .motion-reveal:not(.is-visible){opacity:1;transform:none}.process-grid li:before{transition:none}}
@media print{.reading-progress{display:none}.motion-ready .motion-reveal:not(.is-visible){opacity:1;transform:none}}

/* Quatro cenas, transição por opacidade, controle manual e pausa compartilhada. */
.hero-slide{position:absolute;inset:0;opacity:0;transition:opacity 1.1s ease;pointer-events:none}
.hero-slide.is-active{opacity:1}
.hero-slide img{width:100%;height:100%;object-fit:cover}
.carousel-heading{position:absolute;z-index:3;top:26px;left:26px;right:26px;display:flex;align-items:center;gap:14px;color:white;font-size:.8125rem;line-height:1.6;text-shadow:0 1px 5px #000}
.carousel-heading [data-slide-count]{font-variant-numeric:tabular-nums;white-space:nowrap;border-right:1px solid #ffffff80;padding-right:14px}
.architecture-panel:before{content:'';position:absolute;z-index:1;inset:0 0 65%;background:linear-gradient(#0d19237a,transparent);pointer-events:none}
.architecture-panel .architecture-label{bottom:99px;left:28px;max-width:none;font-size:.75rem;letter-spacing:.1em}
.architecture-panel figcaption{bottom:138px;left:28px}
.carousel-controls{position:absolute;z-index:3;bottom:25px;left:24px;display:flex;align-items:center;gap:7px}
.carousel-controls button{display:grid;place-items:center;width:36px;height:40px;padding:0;border:1px solid #ffffff60;border-radius:2px;background:#12212dbd;color:#fff;font-size:1.2rem}
.carousel-controls button:hover{background:#12212d}
.carousel-dots{display:flex;gap:0}
.carousel-dots button{width:27px;border:0;background:transparent}
.carousel-dots button span{width:6px;height:6px;border-radius:50%;background:#ffffff80;transition:background .2s,transform .2s}
.carousel-dots button[aria-pressed=true] span{background:white;transform:scale(1.45)}
.carousel-status{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.architecture-panel .motion-toggle{right:24px;bottom:25px}
@media(max-width:1150px){.architecture-panel .motion-toggle{bottom:18px;right:20px}.carousel-controls{bottom:64px;left:24px}.architecture-panel .architecture-label{bottom:117px}.architecture-panel figcaption{bottom:148px}}
@media(max-width:640px){.carousel-heading{top:20px;left:20px;right:20px;gap:10px;font-size:.75rem}.architecture-panel figcaption{left:20px;bottom:145px;font-size:1.85rem}.architecture-panel .architecture-label{left:20px;bottom:113px;font-size:.75rem;letter-spacing:.06em}.carousel-controls{left:16px;bottom:59px}.architecture-panel .motion-toggle{bottom:12px;right:16px}}
@media(prefers-reduced-motion:reduce){.hero-slide{transition:none}}
/* O enquadramento permanece dentro do painel; a escala cobre o parallax. */
.architecture-stage{inset:0;transform:translate3d(var(--pointer-x,0px),calc(var(--object-y,0px) + var(--pointer-y,0px)),0) scale(1.12)}
.motion-paused .architecture-stage{transform:scale(1.12)!important}
@media(prefers-reduced-motion:reduce){.architecture-stage{transform:scale(1.12)!important}}
/* Evita que o foco em controles role internamente a imagem ampliada. */
.architecture-panel{overflow:clip}
/* Oito seletores permanecem acessíveis mesmo em telas estreitas. */
@media(max-width:640px){.carousel-controls{left:8px;right:8px;gap:0;justify-content:space-between}.carousel-controls>button{width:28px}.carousel-dots button{width:24px}}
