/* ALUMINAÇO — CSS estrutural das cenas de storytelling (compartilhado) */
.scrolly{position:relative}
.scrolly{position:relative;height:300vh}.scrolly .stage{position:sticky;top:0;height:100vh;display:flex;align-items:center;justify-content:center;overflow:hidden}
.scene-svg{width:min(1100px,92vw);height:auto;max-height:78vh;overflow:visible}
.scene-cap{position:absolute;left:0;right:0;bottom:5vh;text-align:center;pointer-events:none}
.scene-cap .kick{font:600 12px/1 'Space Grotesk',system-ui;letter-spacing:.28em;text-transform:uppercase;color:var(--red)}
.scene-cap h3{margin:.4rem 0 0;font:800 clamp(22px,4vw,44px)/1 'Space Grotesk',system-ui;letter-spacing:-.02em;color:var(--ink)}
.scene-progress{position:absolute;left:8%;right:8%;bottom:3vh;height:3px;background:color-mix(in srgb,var(--ink) 14%,transparent);border-radius:3px;overflow:hidden}
.scene-progress>i{display:block;height:100%;width:100%;background:var(--red);transform:scaleX(0);transform-origin:left;border-radius:3px}
/* trilha de etapas ao lado */
.steps{position:absolute;top:12vh;left:6%;display:flex;flex-direction:column;gap:14px;pointer-events:none}
.steps b{display:flex;align-items:center;gap:10px;font:600 13px/1.3 'Space Grotesk',system-ui;letter-spacing:.02em;color:color-mix(in srgb,var(--ink) 40%,transparent);transition:color .4s}
.steps b::before{content:"";width:9px;height:9px;border-radius:50%;background:color-mix(in srgb,var(--ink) 25%,transparent);transition:.4s;flex:none}
.steps b.on{color:var(--ink)}
.steps b.on::before{background:var(--red);box-shadow:0 0 0 5px color-mix(in srgb,var(--red) 22%,transparent)}
@media(max-width:720px){.steps{display:none}.scene-svg{width:94vw}}

/* --- pivôs / origens de transformação das peças animadas --- */
.scene-svg g,.scene-svg path,.scene-svg rect{will-change:transform,opacity}
.crane-arm{transform-box:fill-box;transform-origin:left center}
.crane-hook{transform-box:fill-box;transform-origin:top center}
.fork-carriage{transform-box:fill-box}
.col{transform-box:fill-box;transform-origin:bottom center}
.beam{transform-box:fill-box;transform-origin:left center}
.truss{transform-box:fill-box;transform-origin:bottom center}
.wing-l{transform-box:fill-box;transform-origin:right center}
.wing-r{transform-box:fill-box;transform-origin:left center}
.ram{transform-box:fill-box}
.piece{transform-box:fill-box}

/* traços/preenchimentos base — usam variáveis do tema */
.s-ink{fill:var(--ink)}
.s-alu{fill:var(--alu)}
.s-steel{fill:var(--steel)}
.s-red{fill:var(--red)}
.s-line{fill:none;stroke:var(--line);stroke-width:3}
.s-line2{fill:none;stroke:var(--line);stroke-width:2}
.s-redline{fill:none;stroke:var(--red);stroke-width:4;stroke-linecap:round}
.ground-line{stroke:var(--line);stroke-width:3;stroke-dasharray:2 14;stroke-linecap:round;opacity:.6}
.glow{filter:drop-shadow(0 0 10px color-mix(in srgb,var(--red) 70%,transparent))}

/* --- setores novos + rótulo em tela (v1 enriquecida) --- */
.shelf{transform-box:fill-box;transform-origin:bottom center}
.post{transform-box:fill-box;transform-origin:bottom center}
.rail{transform-box:fill-box;transform-origin:left center}
.fitem,.epi,.stk,.shine,.handshake,.counter,.betoneira,.gerador,.portao,.soldador{transform-box:fill-box}
.scene-word{position:absolute;top:8vh;left:0;right:0;height:18vh;text-align:center;pointer-events:none;z-index:4}
.scene-word span{position:absolute;left:0;right:0;display:block;font:800 clamp(30px,7vw,88px)/1 var(--fhead,'Space Grotesk',sans-serif);letter-spacing:-.02em;text-transform:uppercase;color:var(--ink);opacity:0;transform:translateY(28px);transition:opacity .45s cubic-bezier(.2,.7,.2,1),transform .45s cubic-bezier(.2,.7,.2,1)}
.scene-word span.show{opacity:1;transform:none}
.scene-word span::after{content:"";display:block;width:54px;height:4px;background:var(--red);margin:14px auto 0;border-radius:3px}
.chapa-r{transform-box:fill-box;transform-origin:left center}
.op-arm{transform-box:fill-box;transform-origin:left center}
.operator,.chapa-l,.ram{transform-box:fill-box}
.baluster{transform-box:fill-box;transform-origin:bottom center}
.step,.climber,.couple,.inrail{transform-box:fill-box}
.guyL,.guyR,.deal-badge{transform-box:fill-box}
.clasp{transform-box:fill-box;transform-origin:center}
/* refino de cenas: novos elementos */
.prod,.machine,.earmuff,.vendedor,.cliente,.worker,.barra,.manTop,.climber,.couple,.dot,.peca-fill,.gun{transform-box:fill-box}
.barra{transform-origin:right center}
.blurbg{filter:blur(3px);opacity:.55}
.scene-word span{font-size:clamp(26px,5.4vw,62px)}
.scene-word span em{display:block;font-style:normal;font-size:.34em;color:var(--red);letter-spacing:.14em;margin-top:8px}
.scene-list{position:absolute;top:19vh;right:5%;max-width:270px;text-align:left;opacity:0;transform:translateX(26px);transition:opacity .5s,transform .5s;pointer-events:none;z-index:4}
.scene-list.show{opacity:1;transform:none}
.scene-list b{display:block;font:700 12px/1 var(--fhead,'Space Grotesk',sans-serif);letter-spacing:.16em;text-transform:uppercase;color:var(--red);margin-bottom:12px}
.scene-list ul{margin:0;padding:0}
.scene-list li{list-style:none;font:600 17px/1.6 var(--fhead,'Space Grotesk',sans-serif);color:var(--ink);padding-left:18px;position:relative}
.scene-list li::before{content:"";position:absolute;left:0;top:11px;width:7px;height:7px;background:var(--red);border-radius:2px}
@media(max-width:760px){.scene-list{display:none}}
.v-arm,.v-hand,.c-arm{transform-box:fill-box}
.v-arm{transform-origin:left center}
.v-hand{transform-origin:left bottom}
.c-arm{transform-origin:right center}
.forklift{transform-box:fill-box}
