/* RUNA · visor 3D con acabados (WEB, borrador 05/10/2026). Reglas sacadas de /p/ocariz; solo tokens v3. */
.visor3d{position:relative;border-radius:var(--runa-radio-l);overflow:hidden;background:var(--web-blanco-producto)}
.visor3d canvas{width:100%;height:min(60vh,540px);min-height:320px;display:block;touch-action:pan-y;cursor:grab}
.visor3d canvas:active{cursor:grabbing}
.visor3d--cuadrado canvas{height:auto;min-height:0;aspect-ratio:1/1}
@media (max-width:640px){.visor3d canvas{height:auto;min-height:0;aspect-ratio:1/1}}
.visor3d .cartel{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;background:var(--web-blanco-producto);transition:opacity .6s ease;pointer-events:none}
.visor3d .cartel.fuera{opacity:0}
@media (prefers-reduced-motion:reduce){.visor3d .cartel{transition:none}}
.visor3d .est{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);max-width:calc(100% - 32px);padding:10px 16px;border-radius:var(--runa-radio);background:var(--runa-bruma-100);color:var(--runa-bruma-700);font:600 12px/1.4 var(--f-texto);letter-spacing:.08em;text-transform:uppercase;text-align:center;pointer-events:none}
.visor3d .est[hidden]{display:none}
.visor3d .pista{position:absolute;left:var(--e4);bottom:var(--e3);display:flex;align-items:center;gap:var(--e2);pointer-events:none;font:600 12px/1 var(--f-texto);letter-spacing:.08em;text-transform:uppercase;color:var(--runa-bruma-700)}
.visor3d .pista svg{width:20px;height:20px;color:var(--runa-bruma-700);--acento:var(--runa-bruma-500)}
.selector{display:flex;flex-wrap:wrap;gap:var(--e2)}
.selector button{display:inline-flex;align-items:center;gap:var(--e2);min-height:44px;padding:10px 16px;border:1.5px solid var(--runa-linea);border-radius:var(--runa-radio);background:var(--runa-piedra-50);color:var(--runa-texto);font:600 14px/1.2 var(--f-texto);cursor:pointer;text-align:left}
.selector button:hover{border-color:var(--runa-texto)}
.selector button[aria-pressed="true"]{background:var(--runa-tinta-900);border-color:var(--runa-tinta-900);color:var(--runa-piedra-50)}
.selector button:focus-visible{outline:3px solid var(--runa-bruma-500);outline-offset:3px}
.selector .asta{width:8px;height:22px;border-radius:2px;flex:none;box-shadow:inset 0 0 0 1px var(--runa-piedra-300)}
.sel{display:grid;grid-template-columns:1.6fr 1fr;gap:var(--e5);margin-top:var(--e5)}
.sel .etiqueta{margin:0 0 var(--e3)}
@media (max-width:720px){.sel{grid-template-columns:1fr}}
