/* Camada cinematográfica (cinema.js): Início, Trabalho e páginas de projeto */
html.rc-cinema body.case{background:var(--pc-d,#111)!important}

/* Terreno 3D de pontos */
.rc-terrain-host{position:relative;isolation:isolate}
.rc-terrain{position:absolute;inset:0;width:100%;height:100%;z-index:-1;pointer-events:none;opacity:0;transition:opacity 1.4s ease .2s}
html.rc-cinema .rc-terrain{opacity:1}
.rc-terrain-wrap{position:absolute;inset:0;z-index:-1;pointer-events:none}
.rc-terrain.rc-terrain--sticky{position:sticky;top:0;height:100vh;height:100svh;inset:auto;-webkit-mask-image:linear-gradient(180deg,transparent 28%,#000 72%);mask-image:linear-gradient(180deg,transparent 28%,#000 72%)}
.case-hero.rc-terrain-host > .rc-terrain{z-index:1;-webkit-mask-image:linear-gradient(180deg,transparent 30%,#000 75%);mask-image:linear-gradient(180deg,transparent 30%,#000 75%)}
.case-hero.rc-terrain-host .case-hero__content{z-index:2}
.page-hero.rc-terrain-host > .rc-terrain{-webkit-mask-image:linear-gradient(180deg,transparent 22%,#000 70%);mask-image:linear-gradient(180deg,transparent 22%,#000 70%)}
.case-next.rc-terrain-host > .rc-terrain{-webkit-mask-image:radial-gradient(130% 95% at 50% 100%,#000 45%,transparent 88%);mask-image:radial-gradient(130% 95% at 50% 100%,#000 45%,transparent 88%)}

/* Abertura de cinema: barras, aproximação lenta e saída em profundidade */
.rc-cinema-hero > .case-hero__media,.rc-cinema-hero > .automation-repeat,.rc-cinema-hero > .bastarda-wall,.rc-cinema-hero > .newsletter-hero-proof{will-change:transform;transform-origin:50% 30%;overflow:hidden}
.rc-cinema-hero > .case-hero__media img{animation:rc-kenburns 8s cubic-bezier(.2,.7,.2,1) both}
@keyframes rc-kenburns{from{scale:1.14}to{scale:1}}
.rc-letterbox{position:absolute;inset:0;z-index:4;pointer-events:none}
.rc-letterbox i{position:absolute;left:0;right:0;height:13vh;background:#050607;animation:rc-bars 1.6s cubic-bezier(.75,0,.2,1) .5s both}
.rc-letterbox i:first-child{top:0;transform-origin:top}
.rc-letterbox i:last-child{bottom:0;transform-origin:bottom}
@keyframes rc-bars{from{transform:scaleY(1)}to{transform:scaleY(0)}}
.rc-cinema-hero .case-hero__content,.rc-cinema-hero > .shell{will-change:transform,opacity}

/* Secções que entram como planos de câmara */
.rc-shot{--shot:1;position:relative;isolation:isolate;transform-origin:50% 0;scale:calc(.9 + var(--shot) * .1);border-radius:calc((1 - var(--shot)) * 44px);overflow:clip}
.rc-chapter-num{--num:.5;position:absolute;right:clamp(1rem,5vw,5rem);top:clamp(2rem,6vw,5rem);z-index:-1!important;pointer-events:none;font:500 clamp(10rem,24vw,24rem)/.8 var(--sans);letter-spacing:-.06em;color:transparent;-webkit-text-stroke:1.5px var(--pc-d,#111);opacity:calc(.16 + (.5 - max(var(--num) - .5, .5 - var(--num))) * .5);transform:perspective(900px) translate3d(0,calc((var(--num) - .5) * -30vh),0) rotateX(calc((var(--num) - .5) * -48deg));transform-origin:50% 100%}
.rc-chapter-num--left{right:auto;left:clamp(.5rem,3vw,3rem);top:auto;bottom:clamp(1.5rem,4vw,4rem);transform-origin:50% 0}
.section--ink .rc-chapter-num,.newsletter-proof .rc-chapter-num{-webkit-text-stroke-color:var(--pc-l,#eee)}

/* Ecrãs do protótipo que se endireitam em 3D (e inclinam com o rato) */
.hub-device__stage{--dev:1;perspective:1800px;perspective-origin:50% 30%}
.hub-device__stage .device-laptop{--ta:0deg;--tx:0;--ty:1;transform-origin:50% 100%;transform:rotateX(calc((1 - var(--dev)) * 32deg)) rotateY(calc((1 - var(--dev)) * -22deg)) translate3d(0,calc((1 - var(--dev)) * 60px),0);rotate:var(--tx) var(--ty) 0 var(--ta);transition:rotate .5s cubic-bezier(.2,.7,.2,1);will-change:transform}
.hub-device--reverse .hub-device__stage .device-laptop{transform:rotateX(calc((1 - var(--dev)) * 32deg)) rotateY(calc((1 - var(--dev)) * 22deg)) translate3d(0,calc((1 - var(--dev)) * 60px),0)}
.hub-device__stage .device-phone{translate:0 calc((1 - var(--dev)) * 160px);rotate:calc((1 - var(--dev)) * 12deg);opacity:calc(.15 + var(--dev) * .85)}
.hub-device--reverse .hub-device__stage .device-phone{rotate:calc((1 - var(--dev)) * -12deg)}

/* Cartões e passos que rodam para o lugar */
.process-sequence,.auto-flow__steps{perspective:1100px}
.rc-card3d{--card:1;transform-origin:0 50%;rotate:y calc((1 - var(--card)) * -55deg);translate:0 calc((1 - var(--card)) * 44px) calc((1 - var(--card)) * -180px)}

/* Páginas da newsletter que se abrem em leque */
.newsletter-proof__spread{perspective:1600px}
.rc-page3d{--pg:1;--side:-1;transform-origin:50% 100%;rotate:y calc((1 - var(--pg)) * 38deg * var(--side));translate:0 calc((1 - var(--pg)) * 70px) calc((1 - var(--pg)) * -220px)}

/* Projetos (Trabalho e Início) que assentam em profundidade e inclinam com o rato */
.work-wall__grid,.work-composition{perspective:1600px}
.rc-tile3d{--tile:1;--side:-1;--ta:0deg;--tx:0;--ty:1;translate:0 calc((1 - var(--tile)) * 70px) calc((1 - var(--tile)) * -200px);rotate:var(--tx) var(--ty) 0 calc(var(--ta) + (1 - var(--tile)) * 10deg * var(--side));transition:rotate .5s cubic-bezier(.2,.7,.2,1)}

@media(max-width:900px){
  .rc-chapter-num--left{left:auto;right:1rem;bottom:auto;top:1.2rem}
  .rc-shot{scale:calc(.95 + var(--shot) * .05);border-radius:calc((1 - var(--shot)) * 22px)}
  .rc-chapter-num{font-size:clamp(7rem,40vw,12rem);top:1.2rem}
  .rc-letterbox i{height:8vh}
  .rc-card3d{rotate:y calc((1 - var(--card)) * -28deg);translate:0 calc((1 - var(--card)) * 30px) 0}
  .rc-page3d{rotate:y calc((1 - var(--pg)) * 20deg * var(--side));translate:0 calc((1 - var(--pg)) * 40px) 0}
  .rc-tile3d{translate:0 calc((1 - var(--tile)) * 40px) 0;rotate:none}
  .hub-device__stage .device-laptop{transform:rotateX(calc((1 - var(--dev)) * 20deg)) translate3d(0,calc((1 - var(--dev)) * 30px),0)}
}

/* Reduzir movimento: fica tudo estático */
html.rc-cinema--still .rc-letterbox,html.rc-cinema--still .rc-chapter-num{display:none}
html.rc-cinema--still .rc-cinema-hero > .case-hero__media img{animation:none}
html.rc-cinema--still .rc-shot,html.rc-cinema--still .rc-card3d,html.rc-cinema--still .rc-page3d,html.rc-cinema--still .rc-tile3d,html.rc-cinema--still .hub-device__stage *{scale:none;rotate:none;translate:none;transform:none;border-radius:0;opacity:1}
@media print{.rc-terrain,.rc-terrain-wrap,.rc-letterbox,.rc-chapter-num{display:none}.rc-shot,.rc-card3d,.rc-page3d,.rc-tile3d{scale:none;rotate:none;translate:none;border-radius:0}}
