/* Visualizador 3D de máquinas: interface minimalista sobre fundo grafite, comum a todos os modelos. */
.viewer{position:absolute;inset:0;overflow:hidden;color:#fff;
  background:radial-gradient(60% 55% at 50% 44%,#30363f 0%,#1B2026 52%,#0E1114 100%);
  opacity:0;visibility:hidden;transition:opacity .5s var(--ease),visibility 0s .5s}
.pres-stage[data-view="3d"] .viewer{opacity:1;visibility:visible;transition:opacity .5s var(--ease)}
.viewer::before{content:"";position:absolute;left:10%;right:10%;bottom:8%;height:30%;pointer-events:none;
  background:radial-gradient(closest-side,rgba(242,101,34,.08),transparent)}
.viewer-host{position:absolute;inset:0}
.viewer-gl{position:absolute;inset:0;width:100%;height:100%;display:block;cursor:grab;outline:none}
.viewer.dragging .viewer-gl,.viewer-host.dragging .viewer-gl{cursor:grabbing}

/* identificação padrão: logo oficial, nome e modelo da máquina e propriedade (fica visível durante a rotação) */
.vw-brand{position:absolute;left:14px;top:14px;z-index:3;display:flex;align-items:center;gap:12px;max-width:calc(100% - 228px);margin:0;padding:8px 12px 8px 10px;overflow:hidden;
  background:rgba(9,11,13,.74);border:1px solid var(--c-line);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
.vw-brand img{flex:none;width:66px;height:auto;-webkit-user-drag:none;user-select:none}
.vw-id{margin:0;padding-left:12px;border-left:1px solid var(--c-line-2);min-width:0}
.vw-id b{font:800 20px/1 var(--f-display);text-transform:uppercase;letter-spacing:.01em;color:#fff}
.vw-id span{font:800 20px/1 var(--f-display);color:var(--c-orange)}
.vw-id small{display:flex;align-items:center;gap:6px;margin-top:5px;font:600 10.5px/1.25 var(--f-body);letter-spacing:.04em;text-transform:uppercase;color:var(--c-soft);white-space:nowrap}
.vw-id small i{flex:none;width:6px;height:6px;border-radius:50%;background:var(--c-orange)}
.vw-quote{position:absolute;right:12px;top:14px;z-index:3;display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 14px;
  background:var(--c-orange);color:var(--c-on-orange);font:800 11.5px/1 var(--f-body);letter-spacing:.08em;text-transform:uppercase;text-decoration:none;
  clip-path:polygon(0 0,calc(100% - 9px) 0,100% 9px,100% 100%,0 100%);transition:background-color .2s}
.vw-quote:hover{background:var(--c-orange-hi)}
.vw-quote svg{width:16px;height:16px;flex:none}
.vw-quote:focus-visible{outline:2px solid #fff;outline-offset:2px}
.vw-tools{position:absolute;right:12px;top:calc(50% + 24px);z-index:3;display:grid;gap:6px;translate:0 -50%}
.vw-tools button{display:grid;place-items:center;width:44px;height:44px;padding:0;border:1px solid var(--c-line-2);background:rgba(9,11,13,.72);color:#fff;cursor:pointer;
  -webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);transition:border-color .2s,background-color .2s}
.vw-tools button:hover{border-color:var(--c-orange)}
.vw-tools button[aria-pressed="true"]{background:var(--c-orange);border-color:var(--c-orange);color:var(--c-on-orange)}
.vw-tools svg{width:19px;height:19px}
.vw-tools .sep{height:4px}
.vw-hint{position:absolute;left:14px;bottom:14px;z-index:3;margin:0;max-width:calc(100% - 90px);padding:7px 10px;font-size:12.5px;line-height:1.35;color:var(--c-soft);
  background:rgba(9,11,13,.6);transition:opacity .5s}
.vw-hint b{color:#fff;font-weight:600}
.viewer.touched .vw-hint{opacity:0}
.vw-note{position:absolute;left:14px;right:70px;top:86px;z-index:4;margin:0;padding:12px 14px;font-size:13px;line-height:1.5;color:var(--c-white);
  background:rgba(9,11,13,.92);border-left:2px solid var(--c-orange)}
.vw-load{position:absolute;inset:0;z-index:2;display:grid;place-items:center;font:600 12px/1 var(--f-body);letter-spacing:.16em;text-transform:uppercase;color:var(--c-gray)}
.vw-load::after{content:"";position:absolute;left:50%;top:calc(50% + 22px);width:120px;height:2px;translate:-50% 0;
  background:linear-gradient(90deg,transparent,var(--c-orange),transparent);background-size:200% 100%;animation:loadbar 1.4s linear infinite}
@keyframes loadbar{from{background-position:100% 0}to{background-position:-100% 0}}
.vw-fail{position:absolute;inset:0;z-index:4;display:grid;place-items:center;padding:24px;text-align:center;color:var(--c-soft);background:#15191d}

/* pontos de destaque */
.hs-layer{position:absolute;inset:0;z-index:2;pointer-events:none}
.hs{position:absolute;left:0;top:0;display:grid;place-items:center;width:30px;height:30px;margin:-15px 0 0 -15px;padding:0;border:2px solid #fff;border-radius:50%;
  background:var(--c-orange);color:var(--c-on-orange);font:800 12px/1 var(--f-body);cursor:pointer;pointer-events:auto;
  box-shadow:0 0 0 0 rgba(242,101,34,.55);animation:hsPulse 2.6s ease-in-out infinite;transition:opacity .3s}
.hs.hidden{opacity:0;pointer-events:none}
.hs.on{background:#fff;color:var(--c-black);border-color:var(--c-orange)}
@keyframes hsPulse{50%{box-shadow:0 0 0 8px rgba(242,101,34,0)}}
.hs-card{position:absolute;left:14px;bottom:14px;z-index:4;width:min(320px,calc(100% - 84px));padding:14px 40px 14px 14px;
  background:rgba(9,11,13,.94);border-left:2px solid var(--c-orange)}
.hs-card .hs-n{margin:0;font:600 11px/1 var(--f-body);letter-spacing:.14em;color:var(--c-orange)}
.hs-card .hs-t{margin:6px 0 0;font:800 20px/1.05 var(--f-display);text-transform:uppercase;color:#fff}
.hs-card .hs-x{margin:6px 0 0;font-size:13.5px;line-height:1.45;color:var(--c-soft)}
.hs-close{position:absolute;right:6px;top:6px;width:32px;height:32px;border:0;background:none;color:var(--c-gray);font-size:16px;cursor:pointer}
.hs-close:hover{color:#fff}

/* tela cheia (camada fixa; funciona também em navegadores sem a API de tela cheia) */
.pres-stage.is-expanded{position:fixed;inset:0;z-index:90;aspect-ratio:auto;width:100%;height:100%;max-width:none}
.pres-stage.is-expanded .viewer-gl{touch-action:none!important}
body.vw-lock{overflow:hidden}

@media (max-width:700px){
  .vw-tools{top:auto;bottom:12px;translate:none;grid-auto-flow:column;right:10px}
  .vw-tools .sep,.vw-tools .opt{display:none}
  .vw-tools button{width:40px;height:40px}
  .vw-hint{bottom:62px;font-size:12px;max-width:calc(100% - 28px)}
  .vw-brand{left:10px;top:10px;gap:8px;max-width:calc(100% - 76px);padding:6px 10px 6px 7px}
  .vw-brand img{width:50px}
  .vw-id{padding-left:8px}
  .vw-id b,.vw-id span{font-size:16px}
  .vw-id small{font-size:9px;letter-spacing:.05em;white-space:normal}
  .vw-quote{right:10px;top:10px;width:46px;min-height:46px;padding:0;justify-content:center}
  .vw-quote span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
  .vw-note{top:78px;right:14px}
  .hs-card{bottom:62px;width:calc(100% - 28px)}
}
@media (prefers-reduced-motion: reduce){
  .hs{animation:none}
  .viewer,.vw-hint{transition:none}
  .vw-load::after{animation:none}
}

/* palco estreito (telas médias): a linha de propriedade quebra e o orçamento vira só ícone, para nada ficar cortado */
.viewer{container-type:inline-size}
@container (max-width:580px){
  .vw-brand{max-width:calc(100% - 82px)}
  .vw-id small{white-space:normal}
  .vw-quote{width:46px;min-height:46px;padding:0;justify-content:center}
  .vw-quote span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
}
