/* Heroi "opcao A": a imagem processada pelo motor preenche a tela, o painel do
   DCTL flutua (arrasta pela barra escura), um node so flutua a esquerda, e as
   cenas ficam centralizadas embaixo. Os tres blocos vem do look.js pelos
   encaixes data-nl. Escopado em .hz. */
.hz{position:relative;height:100vh;min-height:720px;overflow:hidden;user-select:none;background:#0a0b0d}

/* imagem: o canvas do motor vira fundo em tela cheia */
.hz-fundo{position:absolute;inset:0}
.hz-fundo .nl-stage{position:absolute;inset:0;aspect-ratio:auto;border:0;border-radius:0;background:#0a0b0d}
.hz-fundo canvas{width:100%;height:100%;object-fit:cover}
.hz-veu{position:absolute;inset:0;pointer-events:none;background:linear-gradient(0deg,rgba(10,11,13,.85),rgba(10,11,13,0) 38%),linear-gradient(180deg,rgba(10,11,13,.6),rgba(10,11,13,0) 26%)}

/* painel flutuante: a barra escura (.dctl-head) e a alca de arrastar */
.hz-flt{position:absolute;right:44px;top:120px;width:372px;z-index:10;filter:drop-shadow(0 40px 90px rgba(0,0,0,.7))}
.hz-flt .nl.dctl{background:rgba(24,25,29,.64);backdrop-filter:blur(14px);border:1px solid rgba(255,255,255,.12);border-radius:16px;overflow:hidden}
.hz-flt .nl .dctl-head{cursor:grab;background:rgba(36,37,42,.8);height:38px;touch-action:none}
.hz-flt.arrastando .nl .dctl-head{cursor:grabbing}
/* alcas de redimensionar: bordas laterais (largura) e canto (escala) */
.hz-rs{position:absolute;z-index:2}
.hz-rs.l,.hz-rs.r{top:0;bottom:0;width:10px;cursor:ew-resize}
.hz-rs.l{left:-5px}
.hz-rs.r{right:-5px}
.hz-rs.br{right:-4px;bottom:-4px;width:20px;height:20px;cursor:nwse-resize;border-right:2px solid rgba(255,255,255,.35);border-bottom:2px solid rgba(255,255,255,.35);border-radius:0 0 12px 0;opacity:0;transition:opacity .15s}
.hz-flt:hover .hz-rs.br{opacity:1}

/* o node: um so, arrastavel; clicar liga e desliga o DCTL */
.hz-node{position:absolute;left:44px;top:132px;z-index:10;display:flex;align-items:center;padding:14px 18px;border-radius:14px;background:rgba(24,25,29,.43);backdrop-filter:blur(14px);border:1px solid rgba(255,255,255,.12);box-shadow:0 30px 70px -30px rgba(0,0,0,.8);cursor:grab;touch-action:none;font-family:'Century Gothic','Avant Garde','Futura',system-ui,sans-serif}
.hz-node.arrastando{cursor:grabbing}
.hz-node .dot{width:11px;height:11px;border-radius:50%;background:#7fd13b;flex:none}
.hz-node .wire{width:34px;height:2px;background:#a0a0a6}
.hz-node .node{position:relative;width:118px;padding:4px 4px 3px;background:#3b3b41;border:1px solid #e0812f;box-shadow:0 0 0 1px rgba(224,129,47,.35);border-radius:3px;cursor:pointer;font:inherit;color:#e6e6ea;text-align:left;transition:opacity .15s}
.hz-node .node.off{opacity:.45}
.hz-node .node-t{display:block;text-align:center;font-size:11px;padding:1px 2px 4px;white-space:nowrap}
.hz-node .node-th{display:block;width:100%;aspect-ratio:16/9;background:#111 center/cover no-repeat}
.hz-node .node-l{display:flex;align-items:center;gap:6px;padding:4px 3px 1px;font-size:11px}
.hz-node .node-fx{width:10px;height:10px;border-radius:50%;border:1.5px solid #d3d3d8;position:relative}
.hz-node .node-fx:after{content:"";position:absolute;inset:2px;border-radius:50%;background:#d3d3d8}
.hz-node .node:before,.hz-node .node:after{content:"";position:absolute;width:8px;height:8px;border-radius:50%;background:#7fd13b;top:30px}
.hz-node .node:before{left:-5px}
.hz-node .node:after{right:-5px}
/* legenda abaixo da caixa: acompanha o arraste; a palavra do estado atual acende */
.hz-node .hz-cap{position:absolute;left:0;right:0;top:100%;margin-top:10px;text-align:center;font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:#e6e6ea;white-space:nowrap;pointer-events:none;text-shadow:0 1px 8px rgba(0,0,0,.8)}
.hz-node .hz-cap b{font-weight:700;transition:opacity .15s}
.hz-node .hz-cap i{font-style:normal;margin:0 8px;opacity:.5}
.hz-node .hz-cap .a{opacity:.4}
.hz-node .node.off ~ .hz-cap .a{opacity:1}
.hz-node .node.off ~ .hz-cap .d{opacity:.4}

/* cenas: faixa inteira embaixo, centralizada; quando nao cabe, rola para o lado
   (roda do mouse, seta na borda direita ou a barra logo abaixo) */
.hz-cenas-wrap{position:absolute;left:44px;right:44px;bottom:34px;z-index:10}
.hz-cenas{position:relative;overflow-x:auto;overflow-y:hidden;scrollbar-width:none;padding:2px}
.hz-cenas::-webkit-scrollbar{display:none}
.hz-cenas .nl-strip{display:flex;flex-wrap:nowrap;gap:8px;margin:0 auto;width:max-content}
.hz-mais{position:absolute;right:0;top:0;bottom:0;width:72px;z-index:2;cursor:pointer;background:linear-gradient(90deg,rgba(10,11,13,0),rgba(10,11,13,.9) 60%);display:flex;align-items:center;justify-content:flex-end;padding-right:10px;transition:opacity .2s}
.hz-mais[hidden]{display:none}
.hz-mais.fim{opacity:0;pointer-events:none}
.hz-mais i{width:30px;height:30px;border-radius:50%;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.3);display:grid;place-items:center;animation:hzMais 1.6s ease-in-out infinite}
.hz-mais svg{width:14px;height:14px;fill:none;stroke:#fff;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
@keyframes hzMais{0%,100%{transform:translateX(0)}50%{transform:translateX(4px)}}
.hz-scroll{position:absolute;left:44px;right:44px;bottom:14px;z-index:10;cursor:pointer;padding:4px 2px}
.hz-scroll[hidden]{display:none}
.hz-scroll span{display:block;position:relative;height:5px;border-radius:3px;background:rgba(255,255,255,.12)}
.hz-scroll i{position:absolute;top:0;left:0;width:30%;height:5px;border-radius:3px;background:rgba(255,255,255,.45)}
.hz-cenas .nl-strip button{flex:0 0 118px;border-radius:9px;border:1px solid rgba(255,255,255,.14);opacity:.72;background:#111}
.hz-cenas .nl-strip button:hover{opacity:.95}
.hz-cenas .nl-strip button.on{opacity:1;border-color:#fdfcf9;box-shadow:0 0 0 1px #fdfcf9}
.hz-cenas .nl-strip .nl-th{border-radius:8px}

/* dica discreta, ao lado do painel */
.hz-dica{position:absolute;right:436px;top:132px;z-index:11;width:262px;padding:16px 40px 16px 18px;border-radius:12px;background:rgba(16,17,20,.92);border:1px solid rgba(73,224,193,.45);box-shadow:0 20px 50px -20px rgba(0,0,0,.8);backdrop-filter:blur(10px);color:#e6e6ea;font-family:'Century Gothic','Avant Garde','Futura',system-ui,sans-serif;animation:hzIn .6s ease-out}
.hz-dica[hidden]{display:none}
.hz-dica b{display:block;font-size:14px;font-weight:700;margin:0 0 6px;padding-left:16px}
.hz-dica p{margin:0;font-size:12.5px;line-height:1.5;color:#b8b8c0}
.hz-dica .dot{position:absolute;left:18px;top:21px;width:8px;height:8px;border-radius:50%;background:#49e0c1;box-shadow:0 0 0 0 rgba(73,224,193,.6);animation:hzPulse 1.8s ease-out infinite}
.hz-dica .x{position:absolute;top:8px;right:8px;width:26px;height:26px;border:0;border-radius:50%;background:rgba(255,255,255,.08);color:#e6e6ea;font-size:18px;line-height:1;cursor:pointer}
.hz-dica .x:hover{background:rgba(255,255,255,.18)}
.hz-dica:after{content:"";position:absolute;right:-9px;top:30px;border:9px solid transparent;border-right:0;border-left-color:rgba(73,224,193,.6)}
@keyframes hzPulse{0%{box-shadow:0 0 0 0 rgba(73,224,193,.6)}100%{box-shadow:0 0 0 12px rgba(73,224,193,0)}}
@keyframes hzIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){.hz-dica,.hz-dica .dot{animation:none}}

/* telas estreitas: imagem 16:9 presa no topo, cenas rolando para o lado, dica,
   painel fixo abaixo; sem node e sem arrastar */
@media(max-width:960px){
  .hz{height:auto;min-height:0;overflow:visible;display:flex;flex-direction:column;padding-top:70px}
  .hz-fundo{position:sticky;top:70px;z-index:6;aspect-ratio:16/9;background:#0a0b0d;box-shadow:0 12px 24px -12px rgba(0,0,0,.8)}
  .hz-fundo .nl-stage{position:relative;aspect-ratio:16/9}
  .hz-fundo canvas{object-fit:contain}
  /* sem node, sem dica no celular */
  .hz-veu,.hz-node,.hz-dica{display:none}
  /* posicionada com z abaixo do viewer preso: ao rolar, some por baixo dele */
  .hz-cenas{position:relative;inset:auto;z-index:1;order:2;display:block;padding:10px 12px 6px;overflow-x:auto;overflow-y:hidden;scrollbar-width:none;background:#0a0b0d}
  .hz-cenas .nl-strip{justify-content:flex-start;width:max-content;margin:0;gap:10px;padding-right:40px}
  /* tres e meia por tela: a quarta cortada na borda mostra que a faixa continua */
  .hz-cenas .nl-strip button{flex:0 0 calc((100vw - 54px)/3.5)}
  /* seta na borda direita enquanto houver mais cenas a direita */
  .hz-mais{width:64px;background:linear-gradient(90deg,rgba(10,11,13,0),rgba(10,11,13,.92) 55%);padding-right:12px}
  .hz-cenas-wrap{position:relative;inset:auto;order:2;z-index:1}
  .hz-scroll{position:relative;inset:auto;order:3;padding:3px 12px 8px;background:#0a0b0d;z-index:1}
  .hz-scroll span{height:6px;background:#2e2e34}
  .hz-scroll i{height:6px;background:#6a6a72}
  /* abaixo do viewer preso (z 6): a dica e o painel rolam por baixo dele */
  .hz-dica{position:relative;right:auto;top:auto;width:auto;order:4;margin:10px 10px 0;padding:12px 36px 12px 14px;animation:none;z-index:1}
  .hz-dica:after{display:none}
  .hz-flt{position:relative;right:auto;top:auto;width:auto;order:5;margin:6px 10px 0;filter:none;z-index:1}
  .hz-flt .nl.dctl{border-radius:12px}
  .hz-flt .nl .dctl-head{cursor:default}
  .hz-rs{display:none}
  .hz-flt{zoom:1!important;width:auto!important}
}
