/* =========================================================
   SERVIMET — punteros 3D, chispas y suciedad
   (se usa en el sitio principal y en /aero)
   ========================================================= */
:root { --ease: cubic-bezier(0.2, 0.7, 0.1, 1); }
.chispas { position: fixed; inset: 0; width: 100%; height: 100%; pointer-events: none; z-index: 95; }
@media (hover: hover) and (pointer: fine) {
  html.cursor-pinza, html.cursor-pinza * { cursor: none !important; }
  html.cursor-pinza input:not([type="radio"]):not([type="checkbox"]), html.cursor-pinza textarea { cursor: text !important; }
}
.pinza { position: fixed; left: 0; top: 0; z-index: 100; pointer-events: none; opacity: 0; transition: opacity .25s; will-change: transform; }
.pinza.ver { opacity: 1; }
.pinza.oculta { opacity: 0; }
.pinza .cur { position: absolute; left: 0; top: 0; display: none; filter: drop-shadow(0 10px 10px rgba(0,0,0,.4)); }
.pinza img { max-width: none; }
.pinza .cur img { display: block; width: 100%; height: 100%; user-select: none; -webkit-user-drag: none; }
.pinza[data-modo="pinza"] .cur-pinza, .pinza[data-modo="tig"] .cur-tig, .pinza[data-modo="dron"] .cur-dron,
.pinza[data-modo="grua"] .cur-grua, .pinza[data-modo="llave"] .cur-llave { display: block; }
/* brillo del arco en la punta */
.pinza .arco-luz { position: absolute; width: 40px; height: 40px; margin: -20px 0 0 -20px; border-radius: 50%; pointer-events: none; opacity: .0; transform: scale(.4); transition: opacity .2s, transform .2s; mix-blend-mode: screen; }
.cur-pinza .arco-luz { background: radial-gradient(circle, #fff 0 10%, #ffd9a0 22%, rgba(255,140,40,.55) 45%, transparent 70%); opacity: .55; }
.cur-tig .arco-luz { background: radial-gradient(circle, #fff 0 10%, #e3ecff 22%, rgba(143,157,255,.6) 48%, transparent 72%); }
.pinza.arco .arco-luz { opacity: 1; transform: scale(1.15); animation: arco .09s steps(2) infinite; }
@keyframes arco { 50% { opacity: .75; } }
/* golpe al hacer clic */
.pinza .cur-pinza, .pinza .cur-tig, .pinza .cur-llave { transition: transform .18s var(--ease); }
.pinza.arco .cur-pinza, .pinza.arco .cur-tig { transform: rotate(-4deg); }
.pinza.golpe .cur-pinza, .pinza.golpe .cur-tig { transform: rotate(-10deg) scale(.95); }
/* drone */
.pinza .cur-dron { transform: rotate(var(--inc, 0deg)) scale(1.3); transition: transform .25s var(--ease); animation: flotar-dron 2.2s ease-in-out infinite; }
.pinza.arco .cur-dron { filter: drop-shadow(0 12px 10px rgba(0,0,0,.4)) drop-shadow(0 0 12px rgba(53,194,240,.55)); }
@keyframes flotar-dron { 50% { translate: 0 -3px; } }
/* grúa: pluma fija + cable y gancho que oscilan */
.pinza .gr-pendulo { position: absolute; transform-origin: 0 0; transform: rotate(calc(var(--inc, 0deg) * -1.4)); transition: transform .5s cubic-bezier(.3,1.6,.5,1); }
.pinza .gr-cable { position: absolute; left: -1.5px; top: 0; width: 3px; background: repeating-linear-gradient(180deg, #2b323a 0 3px, #59626c 3px 4px); border-radius: 2px; transform-origin: top; transition: transform .35s var(--ease); }
.pinza .gr-gancho { position: absolute; transition: transform .35s var(--ease); }
.pinza.arco .gr-cable { transform: scaleY(.62); }
.pinza.izar .gr-cable { animation: izar-cable .7s var(--ease); }
@keyframes izar-cable { 40% { transform: scaleY(.4); } }
/* llave: ajusta */
.pinza.arco .cur-llave { animation: ajustar .9s ease-in-out infinite; }
.pinza.golpe .cur-llave { transform: rotate(-35deg); animation: none; }
@keyframes ajustar { 0%, 100% { transform: rotate(0deg); } 40%, 55% { transform: rotate(-22deg); } }
@keyframes titilar { 50% { opacity: .25; } }

/* ---------- Suciedad que se limpia con el drone ---------- */
.mugre { position: absolute; z-index: 4; pointer-events: none; opacity: 0; transition: opacity 1.2s ease; mix-blend-mode: multiply; }
.mugre.ver { opacity: 1; }
.mugre.fuera { opacity: 0; transition: opacity 1s ease; }
.mugre-pantalla { mix-blend-mode: normal; z-index: 4; }
.aviso-limpiar { display: inline-flex; align-items: center; gap: 10px; margin: 14px 0 0; padding: 7px 8px 7px 14px; border-radius: 999px; border: 1px dashed rgba(53,194,240,.6); background: rgba(5,13,24,.55); font-family: 'JetBrains Mono', ui-monospace, monospace; font-size: 11px; letter-spacing: .14em; text-transform: uppercase; color: #cff0fc; position: relative; z-index: 5; }
.aviso-limpiar::before { content: ''; width: 8px; height: 8px; border-radius: 50%; background: #35c2f0; box-shadow: 0 0 10px #35c2f0; animation: titilar 1.4s infinite; }
.aviso-limpiar button { pointer-events: auto; border: 0; border-radius: 999px; padding: 6px 12px; background: #35c2f0; color: #04121f; font: 700 11px/1 'JetBrains Mono', monospace; letter-spacing: .1em; text-transform: uppercase; cursor: pointer; }
.aviso-limpiar.ok { border-style: solid; color: #fff; }
.aviso-limpiar.ok button { display: none; }
[data-sucio="pantalla"] > .aviso-limpiar { position: absolute; left: 50%; bottom: 34px; transform: translateX(-50%); margin: 0; }
.recien-limpio { animation: destello 1.4s ease; }
@keyframes destello { 30% { filter: brightness(1.35) drop-shadow(0 0 18px rgba(53,194,240,.7)); } }
@media (prefers-reduced-motion: reduce) { .aviso-limpiar { display: none; } }
.mugre:not(.mugre-pantalla) { -webkit-mask-image: radial-gradient(ellipse 75% 70% at 50% 50%, #000 60%, transparent 100%); mask-image: radial-gradient(ellipse 75% 70% at 50% 50%, #000 60%, transparent 100%); }
